如何在VB.NET中使用C#编写的以下事件/ delgates?

时间:2011-10-03 14:27:54

标签: c# vb.net events delegates apns-sharp

我在我的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'事件。

谢谢!

3 个答案:

答案 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#中关于委托的+ =语法,为委托方法列表添加了一个方法(调用列表)