我正在浏览一些c#源代码并遇到了这段代码,我不明白。
someVariable += (s,_) => this.Close();
这里发生了什么?
答案 0 :(得分:6)
下划线是有效的变量名称。它应该表示很可能是未使用的变量。
我像这样使用它来表示变量没有被进一步使用:
someVariable += (_,__) => this.Close();
答案 1 :(得分:2)
s
和_
只有这个lambda函数中没有使用的参数。
答案 2 :(得分:2)
正如其他人已经说过的那样,s
和_
是用作匿名方法参数的变量。
为了您的理解,这个
someVariable += (s,_) => this.Close();
与
几乎相同someVariable += AnonymousMethod;
private void AnonymousMethod(object s, object _)
{
this.Close();
}
方法的参数类型由事件someVariable
的定义自动推断。我使用object
,因为我们不知道事件是如何定义的。