如果Tick-handling函数只在一个上下文中使用(即总是在同一个函数中与同一个Timer对象结合使用),为什么还要将它作为一个单独的函数呢?当我想到这一点时,这就是我脑子里的想法.
是否可以将匿名函数与Timer的tick事件联系起来?这就是我想要做的.
Timer myTimer = new Timer();
myTimer.Tick += new EventHandler(function(object sender, EventArgs e) {
MessageBox.Show("Hello world!");
});
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 35
您正在寻找匿名方法:
myTimer.Tick += delegate (object sender, EventArgs e) {
MessageBox.Show("Hello world!");
};
Run Code Online (Sandbox Code Playgroud)
您也可以省略参数:
myTimer.Tick += delegate {
MessageBox.Show("Hello world!");
};
Run Code Online (Sandbox Code Playgroud)
在C#3.0中,您还可以使用Lambda表达式:
myTimer.Tick += (sender, e) => {
MessageBox.Show("Hello world!");
};
Run Code Online (Sandbox Code Playgroud)
一个完整的例子是:
Timer timer = new Timer();
timer.Interval = 500;
timer.Tick += (t, args) =>
{
timer.Enabled = false;
/* some code */
};
timer.Enabled = true;
Run Code Online (Sandbox Code Playgroud)