在excellent answer about starting a timer immediately中,我可以看到以下代码:
timer.Elapsed += timer_Elapsed;
ThreadPool.QueueUserWorkItem((_) => DoWork());
...
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
DoWork();
}
void DoWork() {
// etc...
}
我自己尝试了,我碰到了这一行,我认为在匿名代表建设中有一个错字:
What?
|
V
ThreadPool.QueueUserWorkItem((_) => DoWork());
哪个隐藏规则成为下划线" _"可以作为匿名委托中的参数名称接受吗?
答案 0 :(得分:12)
下划线是C#中的普通标识符字符。例如my_money
有效。因此_
与x
一样有效。
你也可以写_ => DoWork()
,我觉得这种情况比较常见。