我有一个我正在尝试更新的Web应用程序。我需要使用Visual Basic进行编码,但旧版本有一些C#代码,这使我很难翻译成VB。我很感激你能给我的任何帮助谢谢。 :)
clsSeguridad oseg = new clsSeguridad();
oseg.DatosLogin += new EventHandler<clsSeguridad.DatosLoginEventArgs>(oseg_DatosLogin);
第一行很容易翻译。基本上,这是正在发生的事情: cslSeguridad是一个自定义类,包含许多验证用户登录的方法。要进行登录,必须首先创建对象,然后添加稍后将在方法中调用的EventHandler。这对我来说是个问题...我似乎无法添加新的Handler ... Visual Studio建议我使用RaiseEvent,但我不确定这是我应该做的,因为我没有写下原始代码。在此先感谢您的帮助。
答案 0 :(得分:3)
在VB.NET中,您将使用:
AddHandler oseg.DatosLogin, New EventHandler(Of clsSeguridad.DatosLoginEventArgs)(oseg_DatosLogin)
AddHandler statement用于将函数或子例程附加到事件。
为了将来参考,您可以使用众多可用的在线工具之一在C#和VB之间转换代码。 Matt Wilko建议http://www.carlosag.net/Tools/CodeTranslator/
答案 1 :(得分:1)
我知道使用.Net反射器在C#和VB之间转换代码。您还可以选择Delphi,F#,IL C ++和Oxygene作为语言目标。如果您使用的是调试程序集,则反汇编的代码段通常与您手动编写的内容非常接近。
答案 2 :(得分:0)
有两种方式
1。硬编码处理
声明您的班级成员_member WithEvents
,然后将方法解析为
`private sub MySub() Handles _member.Event`
2。更有活力的方式
代码使用中的某处
AddHandler _member.Event, addressOf (handling_sub)
不要忘记使用RemoveHandler
或......内存泄漏