C# 表达式主体定义语法糖中的 => 并不创建 lambda 表达式,而是定义了一个更简洁的成员实现
看一段C# 表达式主体定义语法糖的示例
public CurrentUser currentUser => new CurrentUser(3);
在C# 6.0及更高版本中,public CurrentUser currentUser => new CurrentUser(3);
这句话是使用了所谓的“表达式主体定义”(Expression-bodied definitions)
的语法糖。这种语法允许你以更简洁的方式定义属性、索引器、方法和构造函数的实现。
传统的完整写法可能是这样的:
public CurrentUser CurrentUser
{
get
{
return new CurrentUser(3);
}
}
在这个传统的写法中,CurrentUser 是一个属性,它有一个 get 访问器,该访问器每次被调用时都会返回一个新的 CurrentUser 实例,参数为 3。
使用表达式主体定义后,代码变得更加简洁,同时保持了相同的语义。这种简化的写法特别适用于那些返回值是简单表达式的属性、方法或索引器。
表达式主体定义不仅限于属性,还可以用于方法,如下所示:
public int Add(int a, int b) => a + b;
这个方法接受两个整数参数,并返回它们的和。使用表达式主体定义,你可以在不使用大括号和 return 关键字的情况下定义方法体。
需要注意的是,表达式主体定义有一些限制,例如它们不能包含控制流语句(如 if、switch、for、while 等),并且不能是 void 返回类型。
转自:tnblog
链接:tnblog.net/notebook/article/details/8332
版权声明:本文来源于网络收集或网友供稿,仅供学习交流之用,如有侵权,请留言转告小编立即删除。
- EOF -
技术群:添加小编微信dotnet999
公众号:dotnet讲堂