我最近在使用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#中执行此操作吗?
非常感谢任何帮助。
答案 0 :(得分:0)
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);
}
}
答案 1 :(得分:0)
您可以使用事件数据类。见这里:
http://msdn.microsoft.com/en-us/library/edzehd2t(v=vs.110).aspx
答案 2 :(得分:0)
您可以在不可预测的时间将事件视为方法调用。程序的其余部分并不真正知道何时会发生某些事情,因此方法被“委派”以响应正在引发的事件。我在这里表达的参数是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
OR:
AddHandler OtherObject.OnLoad, AddressOf MethodToHandleTheEvent
希望这会有所帮助。如果您还有其他问题,请发表评论。