C# 6允许表达式体成员的方法和属性只定义get访问器,而在C# 7中,只要在实现代码中只使用一条语句,表达式体成员就可以在任何地方使用。在函数式编程中,许多方法都只是一行代码,因此可以经常使用这个特性,代码行数减少,是因为不需要花括号。
看看下面的代码片段,其中,表达式体成员与属性访问器(get和set)一起使用,并使用ToString()方法的实现,以及构造函数的实现。构造函数定义为接受name作为字符串参数,并要求将该字符串拆分为姓和名。这是用一条语句完成的,首先将字符串分割成一个字符串数组,然后使用这个字符串数组通过out参数来提取两个字符串_firstName和_lastName:
public class Person
{
public Person(string name)=>name.Split(' ').ToStrings(out _firstName,out _lastName);
private string _firstName;
public string FirstName
{
get=>_firstName;
set=>_firstName = value;
}
private string _lastName;
public string LastName
{
get=>_lastName;
set=>_lastName = value;
}
public override string ToString()=>$"{FirstName}