简而言之,通过 C# 阅读,我注意到了这段我从未遇到过的代码:
_uiSyncContent.Post(_ => txtMessage.Text += "Test");
下划线后跟箭头是什么?我见过以类似方式编写的 Lambda 表达式,但没有下划线。
简而言之,通过 C# 阅读,我注意到了这段我从未遇到过的代码:
_uiSyncContent.Post(_ => txtMessage.Text += "Test");
下划线后跟箭头是什么?我见过以类似方式编写的 Lambda 表达式,但没有下划线。
它只是一个使用_
而不是x
作为其参数的 lambda 表达式。_
是一个有效的标识符,因此它可以用作参数名称。
正如评论中所提到的,一些开发人员将其称为约定,_
以表明 lambda 表达式实际上并未使用它,但仅此而已:约定。
请注意,这与discard(在此答案后几年引入)不同,它是一个特殊变量,用于分配不会使用的值,而是将被丢弃。与丢弃的值不同,_
参数继续存在于 lambda 范围内;它们只是没有在 lambda 表达式中的任何地方使用。一次只能有一个_
范围。