首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VB.NET中使用以下用C#编写的事件/委托?

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

Stack Overflow用户
提问于 2011-10-03 22:27:54
回答 3查看 305关注 0票数 1

我在我的ASP.NET web应用中使用了JdSoft的APNS-Sharp库。该库是用C#编写的,并广泛使用委派函数和事件进行线程处理。我的应用程序是用VB.NET编写的,我对如何翻译以下示例代码(C#)感到有点困惑:

代码语言:javascript
复制
....
//Wireup the events
service.Error += new FeedbackService.OnError(service_Error);
....
}

static void service_Error(object sender, Exception ex)
{
Console.WriteLine(...);
}

下面是FeedbackService类的相关成员:

代码语言:javascript
复制
public delegate void OnError(object sender, Exception ex);
public event OnError Error;

基本上,我试图弄清楚如何将一个函数(如service_Error)附加到VB.NET中的事件(如Error),我不清楚+=语法在此上下文中的含义,VisualStudio说由于某种原因,我的VB.NET代码无法直接访问“Error”事件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-03 22:33:32

+=操作符基本上是为FeedbackService.OnError函数订阅Error调用列表。因此,当引发Error事件时,将调用OnError方法。

要将上述代码转换为VB.NET,应如下所示:

代码语言:javascript
复制
// 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

票数 3
EN

Stack Overflow用户

发布于 2011-10-03 22:30:02

代码语言:javascript
复制
AddHandler service.Error, service_Error
票数 2
EN

Stack Overflow用户

发布于 2011-10-03 22:32:00

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7636382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档