1

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

任何帮助将非常感激。

4

3 回答 3

2

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);
    }
}
于 2014-03-11T14:58:24.850 回答
0

您可以使用事件数据类。看这里:

http://msdn.microsoft.com/en-us/library/edzehd2t(v=vs.110).aspx

于 2014-03-11T14:58:46.733 回答
0

您可以将事件视为在不可预测的时间进行的方法调用。程序的其余部分并不真正知道什么时候会发生,因此方法被“委托”以响应引发的事件。我这里表达的参数是微软标准的,但是你可以使用任何你喜欢的参数。

但是,接收事件的方法必须具有与引发事件完全相同的参数。

以下是在 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

希望这可以帮助。如果您还有任何问题,请发表评论。

于 2014-03-12T20:29:32.000 回答