我有一个问题..在 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”,但没有成功。我还能做什么来解决这个问题?...谢谢。
最佳答案
acceptClient()
将调用不带参数的方法acceptClient
并返回结果。您想要的是将方法添加为事件处理程序:
mAcceptor.OnAccepted += acceptClient;
注意缺少括号;您正在使用该方法而不是调用它。
关于C# 和 VB.NET 引发事件差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876514/