下划线箭(_ => ......)这是什么?

Jam*_*ery 27 c#

在Nutshell中通过C#阅读我注意到了一些我从未遇到过的代码:

_uiSyncContent.Post(_ => txtMessage.Text += "Test");
Run Code Online (Sandbox Code Playgroud)

什么是下划线后跟箭头?我已经看到Lambda表达式以类似的方式编写,但没有任何下划线.

Bol*_*ock 27

它只是一个lambda表达式,_而不是x用于其参数._是一个有效的标识符,因此它可以用作参数名称.

正如评论中所提到的,一些开发人员之间的惯例是调用它_来表明它实际上并没有被lambda表达式使用,但它只不过是:一个约定.

  • @xanatos`_`,`__`. (6认同)
  • _一般来说,一些开发人员使用它来表示他们不关心的论点,因为他们_must_根据委托签名分配参数. (5认同)
  • 所以,这种令人困惑的语法唯一可能的原因是,如果你不打算在示例中使用lambda表达式中的参数,那么它会更清晰吗? (4认同)
  • @AndyzSmith你的短语和它一样令人困惑:-) (3认同)
  • @ChrisSinclair非常有趣.把我扔了一点. (2认同)
  • +1只是出于好奇,如果有2个未使用的参数?在那个"思想流派"中,什么是表明他们没有被使用的当前方式?_1和_2? (2认同)