我在我的 ASP.NET 网络应用程序中使用 JdSoft 的 APNS-Sharp 库。该库是用 C# 编写的,并广泛使用委托(delegate)函数和事件来实现线程化。我的应用程序是用 VB.NET 编写的,我对如何翻译以下示例代码 (C#) 有点困惑:
....
//Wireup the events
service.Error += new FeedbackService.OnError(service_Error);
....
}
static void service_Error(object sender, Exception ex)
{
Console.WriteLine(...);
}
下面是 FeedbackService 类的相关成员:
public delegate void OnError(object sender, Exception ex);
public event OnError Error;
基本上,我试图弄清楚如何在 VB.NET 中将一个函数(如 service_Error)附加到一个事件(如 Error)。我不清楚 += 语法在这种情况下的含义,VisualStudio 说由于某种原因我的 VB.NET 代码无法直接访问“错误”事件。
最佳答案
+=
运算符基本上是将 FeedbackService.OnError
函数订阅到 Error
调用列表。因此,当引发 Error
事件时,将调用 OnError
方法。
要将上述代码转换为 VB.NET,它看起来像这样:
// define delelgate/event
Public Delegate Sub OnError(sender As Object, ex As Exception)
Public Event OnError Error
// attach method to event
AddHandler service.Error, service_Error
参见 How to: Raise and Consume Events对于 VB.NET 中的一些示例。
关于c# - 如何在 VB.NET 中使用以下用 C# 编写的事件/委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7636382/