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

标签 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”,但没有成功。我还能做什么来解决这个问题?...谢谢。

最佳答案

acceptClient()

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

mAcceptor.OnAccepted += acceptClient;

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

关于C# 和 VB.NET 引发事件差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876514/

相关文章:

c# - 线程卡住主 UI

c# - 反序列化 - 程序集未找到问题 c#

c# - Winform ListViewItem 选中状态切换

c# - RESTful 服务是否可以从客户端的 "Accept"属性设置其请求和响应类型

javascript - 如何在 C# Xamarin for WebView 中实例化 JavaScript 对象

c# - 最小化十进制 .csv 文件的文件大小

c# - 在GridView/DetailsView中显示外键数据

c# - C# 中的模拟退火

c# - 如何显示 Windows 登录对话框?

c# - 我如何调查 WCF 通过 GET 给出 400 个错误请求?