0

我有一个正在尝试更新的 Web 应用程序。我需要使用 Visual Basic 进行编码,但旧版本有一些 C# 代码,这让我很难翻译成 VB。我很感激你能给我的任何帮助。:)

clsSeguridad oseg = new clsSeguridad();
oseg.DatosLogin += new EventHandler<clsSeguridad.DatosLoginEventArgs>(oseg_DatosLogin);

第一行很容易翻译。基本上,这就是正在发生的事情: cslSeguridad 是一个自定义类,它包含许多验证用户登录的方法。为了登录,您必须首先创建对象,然后添加稍后将在方法中调用的 EventHandler。这就是我的问题...我似乎无法添加新的处理程序... Visual Studio 建议我使用 RaiseEvent,但我不确定这是我应该做的,因为我没有写出原始代码。在此先感谢您的帮助。

4

3 回答 3

3

在 VB.NET 中,您将使用:

AddHandler oseg.DatosLogin, New EventHandler(Of clsSeguridad.DatosLoginEventArgs)(oseg_DatosLogin)

AddHandler 语句用于将函数或子例程附加到事件。

为了将来参考,您可以使用众多在线工具之一在 C# 和 VB 之间转换代码。马特威尔科建议http://www.carlosag.net/Tools/CodeTranslator/

于 2013-09-06T15:20:49.943 回答
1

我知道使用 .Net 反射器在 C# 和 VB 之间转换代码。您还可以选择 Delphi、F#、IL C++ 和 Oxygene 作为语言目标。如果您使用的是调试程序集,反汇编的代码片段通常非常接近您手动编写的内容。

于 2013-09-06T15:34:11.197 回答
0

有两种方法

1. 硬编码处理

声明您的类成员 _member WithEvents,然后将方法声明为

`private sub MySub() Handles _member.Event`

2. 更动态的方式

代码使用中的某个地方

AddHandler _member.Event, addressOf (handling_sub)

不要忘记使用RemoveHandler或...内存泄漏

于 2013-09-06T15:48:27.237 回答