C# 奇怪的lambda表达式

C# 奇怪的lambda表达式,c#,lambda,C#,Lambda,我正在浏览一些c#源代码,发现了这段代码,我不理解 someVariable += (s,_) => this.Close(); 这里发生了什么?s和仅此lambda函数中未使用的参数。下划线是有效的变量名。它很可能表示未使用的变量 我这样用它来表示变量没有被进一步使用: someVariable += (_,__) => this.Close(); 如其他人所述,s和是用作匿名方法参数的变量。 就你的理解而言,这 someVariable += (s,_) => this

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

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

这里发生了什么?

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

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

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

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

如其他人所述,
s
是用作匿名方法参数的变量。
就你的理解而言,这

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

someVariable += AnonymousMethod;

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

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

下划线是一个有效的变量名,它很可能表示一个未使用的变量。
\u
是一个有效的变量名。例如:
var=2
您是在询问下划线,还是询问
+=
?(这是活动订阅)。我真的不明白,有没有参考资料让我学习?我通常只对函数(select、where、groupby等)之类的列表使用lambda,它是引起混淆的原因,还是形式的一般表达式:
someVariable+=(s,e)=>this.Close()?我希望您永远不要有太多未使用的参数<代码>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
:-)