[英]How Do You Raise an Event With a Parameter?
在使用VB.Net一段時間之后,我最近開始使用C#。
在VB.Net中,您可以使用傳入的參數引發事件。例如
Event TileMoved(ThisTile As Tile)
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
RaiseEvent TileMoved(Me)
End Sub
請有人解釋如何在C#中執行此操作嗎?
任何幫助將非常感激。
vb-> c#轉換可得出此結果。
public event TileMovedEventHandler TileMoved;
public delegate void TileMovedEventHandler(Tile ThisTile);
private void Button1_Click(System.Object sender, System.EventArgs e)
{
if (TileMoved != null) {
TileMoved(this);
}
}
您可以使用事件數據類。 看這里:
http://msdn.microsoft.com/zh-CN/library/edzehd2t(v=vs.110).aspx
您可以將事件視為在不可預測的時間進行的方法調用。 該程序的其余部分並不真正知道何時會發生什么事情,因此“委派”了一些方法來響應發生的事件。 我在這里表達的參數是Microsoft標准,但是您可以使用任何喜歡的參數。
但是,接收事件的方法必須具有與引發事件完全相同的參數。
這是在VB中進行事件的方式。 在事件聲明中:
Public Event OnLoad(e As System.EventArgs, sender as Object)
在事件調用中: RaiseEvent OnLoad(New EventArgs(), Me)
您可以在此處使用任何類型的參數。
使方法響應事件
Public Sub HelloWorld(e as System.EventArgs, sender as Object) Handles OtherObject.OnLoad
End Sub
要么:
AddHandler OtherObject.OnLoad, AddressOf MethodToHandleTheEvent
希望這可以幫助。 如果您還有其他問題,請發表評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.