繁体   English   中英

奇怪的lambda表达式[重复]

[英]Strange lambda expression [duplicate]

这个问题已经在这里有了答案:

我正在看一些C#源代码,碰到了这段我不理解的代码。

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

这是怎么回事

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

我这样使用它来表示不再进一步使用变量:

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

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

正如其他人已经指出的那样, s_是用作匿名方法的参数的变量。
为了您的理解,

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

与...几乎相同

someVariable += AnonymousMethod;

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

通过someVariable事件的定义自动推断方法的参数类型。 我使用object因为我们不知道事件的定义方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM