在C#6.0前,所有方法和get属性的主体部分都是由包含在大括号内的代码组成的,并且必须有大括号。
但是现在,在某些情况下我们有了另外的选择。
如果函数体是由单个表达式构成的,我们可以使用称为表达式函数体的短格式语法。
表达式函数体成员有如下重要特性:
- 代码必须是由一个表达式组成的,以分号结束。
- 不能有开始和结束大括号
- 在参数列表和构成函数体的表达式之间使用Lambda运算符(=>)
- 在C#6.0中,这个功能可以用在方法和属性的get访问器中。C#7.0将这个功能扩展到了构造函数、终结函数(finalizer)、属性set访问器和索引器
例如,下面方法声明使用了之前的方法体语法,而没有使用表达式函数体语法。
它是由包含在大括号内的一个语句组成的。
C#
public static int ToInt(string str)
{
return int.Parse(str);
}
使用表达式函数体格式,这个代码可以重写成如下更简洁的样子 ———–使用Lambda运算符,没有大括号。
注意,语句已经被表达式替代了
C#
public static int ToInt(string str) => int.Parse(str);
下面演示一个只读属性的例子:
C#
public string myTitle => "abs";
你不能对自动实现了读写操作的属性成员使用表达式函数体。
在这种情况下,不能同时使用访问器列表和表达式函数体。