c# - C# 和 VB.NET 之间的事件处理差异

标签 c# vb.net timer event-handling

NET 专家...您如何将这个 block 转换为 VB?

this.timer = new System.Timers.Timer(100);
this.timer.Elapsed+=new System.Timers.ElapsedEventHandler(ManageThreads);
this.timer.Start();

当我使用在线转换器(Telerik)时,中间一行转换成这样:

Me.timer.Elapsed += New System.Timers.ElapsedEventHandler(ManageThreads)

有 2 个错误: 1-》public eventElapsed是一个事件,不能直接调用。使用raiseEvent 2- 委托(delegate)需要一个 Adess Of 表达式。我只是添加“Address Of”吗?

热烈欢迎任何线索。

最佳答案

C# 和 VB.NET 之间添加事件处理程序的语法非常不同,正如您所发现的,Telerik 不能很好地处理这种差异。

C# 添加处理程序语法:

<object>.<event> += <event_handler_function>

VB 添加处理程序语法:

add handler <object>.<event>, addressof <event_handler_function>

在使用 VB 事件处理时,您可能会遇到另一个问题:您为其添加事件处理程序的对象必须在类范围内声明。例如。您不能将处理程序添加到本地创建的对象(在方法中)并将其返回或将其添加到集合中。因此,当您需要动态执行操作时,您基本上拥有一个类级别的临时变量。

祝你好运。

关于c# - C# 和 VB.NET 之间的事件处理差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4219446/

相关文章:

c# - 我应该在 Page_Init 中以编程方式添加控制事件处理程序吗?

c# - .NET 可以确定前台线程的数量吗?

c# - 如何将标准控件属性固定为所需值?

java - 安卓Java : How to subtract two times?

swift - 在 Swift 中以定义的时间停止计时器

c# - 如何使用 DI 将自定义授权添加到 WCF Web 服务

c# - IS vs. AS vs. IsAssignableFrom - 检查对象类型和接口(interface)时有什么区别?

mysql - 为什么不正确地命令 asc?

Java libgdx 创建和显示秒表

c# - 更改按钮背景