奇怪的lambda表达式

本文关键字:表达式 lambda | 更新日期: 2023-09-27 18:01:09

我正在浏览一些c#源代码,发现了这段代码,但我不理解。

someVariable += (s,_) => this.Close();

这里发生了什么?

奇怪的lambda表达式

下划线是一个有效的变量名。它应该表示很可能是一个未使用的变量。

我这样用它来表示变量没有被进一步使用:

someVariable += (_,__) => this.Close();

如前所述,s_是用作匿名方法参数的变量
为了您的理解,这个

someVariable += (s,_) => this.Close();

与基本相同

someVariable += AnonymousMethod;
private void AnonymousMethod(object s, object _) 
{
   this.Close();
}

该方法的参数类型由事件someVariable的定义自动推断。我使用了object,因为我们不知道事件是如何定义的。

s_仅是此lambda函数中未使用的参数。