如何使用参数提升事件?

时间:2014-03-11 14:54:50

标签: vb.net events raiseevent

我最近在使用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#中执行此操作吗?

非常感谢任何帮助。

3 个答案:

答案 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

希望这会有所帮助。如果您还有其他问题,请发表评论。