什么是C#

时间:2015-07-29 07:33:25

标签: c# vb.net events timer handles

我尝试将Visual Basic(VB)项目转换为C#,我不知道如何更改下面的一些代码,

在窗口中形成一个字段和一个像这样定义的Timer对象;

Public WithEvents tim As New Timer
...
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tim.Tick
End Sub
...

如何在C#中重写这一行?

1 个答案:

答案 0 :(得分:3)

在C#中,您通过使用EventHandler运算符向事件注册方法委托来注册+=,如下所示:

public Timer tim = new Timer();
tim.Tick += Timer1_Tick;

private void Timer1_Tick(object sender, EventArgs e)
{
   // Event handling code here
} 

这是有效的,因为Tick类的Timer事件实现了Event,如下所示:

public event EventHandler Tick

EventHandler是带签名的方法委托:

public delegate void EventHandler(
    Object sender,
    EventArgs e
)

这就是为什么任何符合EventHandler签名的方法都可以用作处理程序的原因。