Синтаксис в теле выражения на самом деле является только более коротким синтаксисом для свойств и (именованных) методов и не имеет особого значения.
Эти две строки полностью эквивалентны:
public string Name => First + " " + Last;
public string Name { get { return First + " " + Last; } }
Вы также можете написать методы с выражением тела (обратите внимание на разницу в том, что ваше лямбда-выражение делает то же самое. Здесь вы указываете тип возвращаемого значения и имя):
public int Square (int x) => x * x;
вместо
public int Square (int x)
{
return x * x;
}
Вы также можете использовать его для записи геттеров и сеттеров
private string _name;
public Name
{
get => _name;
set => _name = value;
}
и для конструкторов (при условии, что класс с именем Person
):
public Person(string name) => _name = name;
Используя синтаксис кортежа, вы даже можете назначить несколько параметров
public Person(string first, string last) => (_first, _last) = (first, last);
Это работает и для присвоения свойств.