繁体   English   中英

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

[英]How can I use the following events/delgates, written in C#, in VB.NET?

我在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;

基本上,我试图弄清楚如何在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

有关VB.NET中的一些示例,请参见如何:引发和消耗事件

AddHandler service.Error, service_Error

我不确定在VB实现上是否很确定,但是C#中关于委托的+ =语法会将一种方法添加到方法的委托列表(调用列表)中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM