一尘不染

C#中的'=>'语法是什么意思?

c#

我只是在这个论坛中的一些问题中提到了这种语法,但是Google和任何其他搜索引擎都倾向于在搜索中屏蔽除字母和数字以外的任何内容,因此无法搜索出“ =>”。

有人能告诉我它是什么以及如何使用吗?


阅读 497

收藏
2020-05-19

共1个答案

一尘不染

它是lambda运算符。

从C#3到C#5,仅用于lambda表达式。这些基本上是C#2中引入的匿名方法的较短形式,但也可以转换为表达式树

举个例子:

Func<Person, string> nameProjection = p => p.Name;

等效于:

Func<Person, string> nameProjection = delegate (Person p) { return p.Name; };

在这两种情况下,您都将创建一个带有Person参数的委托,并返回该人的姓名(作为字符串)。

在C#6中,相同的语法用于 表示体成员 ,例如

// Expression-bodied property
public int IsValid => name != null && id != -1;

// Expression-bodied method
public int GetHashCode() => id.GetHashCode();

也可以看看:

(实际上还有很多类似的问题-
尝试使用lambdalambda-
expressions
标签。)

2020-05-19