将事件从C#转换为VB.NET [英] Converting Events from C# to VB.NET

查看:79
本文介绍了将事件从C#转换为VB.NET的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为想要VB.NET示例的老板研究IPC远程处理.我在 http://j1hammer.blogspot.com/2005/上找到了一个很好的例子11/creating-broadcast-events-server-using.html ,但它在C#中.我正在尝试将其转换为VB.NET,但是我遇到了C#处理事件的方式的问题.

在原始代码中:

I''m researching IPC remoting for my boss, who wanted a VB.NET sample. I found a good example at http://j1hammer.blogspot.com/2005/11/creating-broadcast-events-server-using.html, but it''s in C#. I''m trying to convert it to VB.NET but I''m running into a problem with the way C# handles events.

In the original code:

private void InitializeObjects()
{
   _bcaster = (IBroadcaster)RemotingHelper.GetObject(typeof(IBroadcaster));
   _eventHelper = new BroadcastEventHelper();
   _eventHelper.MessageArrivedLocally += new MessageArrivedHandler(HandleMessage);
   _bcaster.MessageArrived += new MessageArrivedHandler(_eventHelper.LocallyHandleMessageArrived);
}



这将转换为以下VB.NET代码段:



This translates into the following VB.NET snippet:

Private Sub InitializeObjects()
    _bcaster = DirectCast(RemotingHelper.GetObject(GetType(IBroadcaster)), IBroadcaster)
    _eventHelper = New BroadcastEventHelper()
    _eventHelper.MessageArrivedLocally += New MessageArrivedHandler(AddressOf HandleMessage)
    _bcaster.MessageArrived += New MessageArrivedHandler(AddressOf _eventHelper.LocallyHandleMessageArrived)
End Sub



但是,当我尝试使用它时,出现以下错误:



However when I try to use it I get the following errors:

''Public Event MessageArrivedLocally(msg As Common.Common.Message)'' is an event, and cannot be called directly. Use a ''RaiseEvent'' statement to raise an event.


''Public Event MessageArrived(msg As Common.Common.Message)'' is an event, and cannot be called directly. Use a ''RaiseEvent'' statement to raise an event.



完整的代码可以在我最初发布的链接中找到,位于页面下方约35%的位置.为"_bcaster"做一个^ F可以使您到代码中的这一点.

抱歉,含糊不清.如果需要,我将尝试发布更多详细信息.



The full code can be found at the link I originally posted, at about 35% down the page. Do a ^F for "_bcaster" to get you to this point in the code.

Sorry for the ambiguity. I''ll try to post more details if requested.

推荐答案

要替换object.Event += ...,您想使用AddHandler. Google是您的朋友.
To replace object.Event += ..., you want to use AddHandler. Google is your friend.


这篇关于将事件从C#转换为VB.NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆