C#和VB.NET引发了事件差异

时间:2013-07-26 08:27:14

标签: c#

我有一个问题..在VB.NET中我有这个子,例如:

Sub AcceptClient(ByRef pSocket As Socket)
'Some Code...
End Sub

然后,我有这个,每当事件被提出时都要调用它:

AddHandler mAcceptor.OnAccepted, AddressOf AcceptClient

但是,在C#中,当我这样做时,使用以下代码:

mAcceptor.OnAccepted += acceptClient();
void acceptClient(Socket pSocket)

它说我错过了pSocket参数。但是,在VB.NET中,它完美无瑕。为什么?我尝试添加“ref”,但没有做到这一点。我还能做些什么来解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:6)

acceptClient()

将调用没有参数的方法acceptClient并返回结果。你想要的是将方法添加为事件处理程序:

mAcceptor.OnAccepted += acceptClient;

注意缺少括号;你正在使用该方法而不是调用它。