奇怪的lambda表达式
本文关键字:表达式 lambda | 更新日期: 2023-09-27 18:01:09
我正在浏览一些c#源代码,发现了这段代码,但我不理解。
someVariable += (s,_) => this.Close();
这里发生了什么?
下划线是一个有效的变量名。它应该表示很可能是一个未使用的变量。
我这样用它来表示变量没有被进一步使用:
someVariable += (_,__) => this.Close();
如前所述,s
和_
是用作匿名方法参数的变量
为了您的理解,这个
someVariable += (s,_) => this.Close();
与基本相同
someVariable += AnonymousMethod;
private void AnonymousMethod(object s, object _)
{
this.Close();
}
该方法的参数类型由事件someVariable
的定义自动推断。我使用了object
,因为我们不知道事件是如何定义的。
s
和_
仅是此lambda函数中未使用的参数。