7
ThreadPool.QueueUserWorkItem(new WaitCallback((_) => { MyMethod(param1, Param2); }), null);

您能解释一下 WaitCallBack 构造函数中下划线 (_) 的含义吗?

4

2 回答 2

7

unsercore 实际上是匿名方法的参数。如果需要一个接受输入参数的 lambda 表达式,但实际上并没有使用输入参数,这是一种常见的技术。

它完全等同于:

new WaitCallback(x => { MyMethod(param1, Param2); })
于 2012-10-05T04:28:28.860 回答
3

下划线是一个有效的 C# 标识符名称,通常与 lambda 表达式一起使用,以指定将被忽略的表达式的参数

您可能会看到:Nice C# idiom for parameterless lambdas

于 2012-10-05T04:29:52.130 回答