我在我的ASP.NET网络应用程序中使用JdSoft的APNS-Sharp库。该库是用C#编写的,并广泛使用委托函数和事件来进行线程处理。我的应用程序是用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;
基本上,我正在试图弄清楚如何将函数(如service_Error)附加到VB.NET中的事件(如Error)。我不清楚+ =语法在这个上下文中意味着什么,VisualStudio说我的VB.NET代码由于某种原因不能直接访问'Error'事件。
谢谢!
答案 0 :(得分:3)
+=
运算符基本上是将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
有关VB.NET中的一些示例,请参阅How to: Raise and Consume Events。
答案 1 :(得分:2)
AddHandler service.Error, service_Error
答案 2 :(得分:0)
我不确定VB实现我害怕,但C#中关于委托的+ =语法,为委托方法列表添加了一个方法(调用列表)