1

我在我的 ASP.NET Web 应用程序中使用 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 中的事件(如错误)。我不清楚 += 语法在这种情况下的含义,VisualStudio 说由于某种原因我的 VB.NET 代码无法直接访问“错误”事件。

4

3 回答 3

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 中的一些示例,请参见如何:引发和使用事件

于 2011-10-03T14:33:32.440 回答
2
AddHandler service.Error, service_Error
于 2011-10-03T14:30:02.317 回答
0

恐怕我不确定 VB 实现,但是 C# 中关于委托的 += 语法将一个方法添加到方法的委托列表(调用列表)

于 2011-10-03T14:32:00.017 回答