По сути, члены с телом выражения — это просто сокращенный способ выполнения обычных задач. Они «могут» сделать ваш код чище и сохранить печатные символы. Хотя в них нет ничего особенного, кроме синтаксического сахара, который их обозначает.
Подробнее о них можно прочитать здесь. Кроме того, я обобщил и сжал информацию и добавил немного перца и соли по вкусу.
члены с телом выражения (Руководство по программированию на C#)
Определения тела выражения позволяют вам предоставить реализацию члена в очень сжатой, удобочитаемой форме. Вы можете использовать определение тела выражения всякий раз, когда логика для любого поддерживаемого члена, такого как метод или свойство, состоит из одного выражения.
Методы
Метод с телом выражения состоит из одного выражения, которое возвращает значение, тип которого соответствует типу возвращаемого значения метода, или, для методов, возвращающих void, которое выполняет некоторую операцию.
public void DisplayName() => Console.WriteLine(ToString());
public void DisplayName()
{
Console.WriteLine(ToString())
}
Конструкторы
Определение тела выражения для конструктора обычно состоит из одного выражения присваивания или вызова метода, который обрабатывает аргументы конструктора или инициализирует состояние экземпляра.
public class Location
{
private string locationName;
public Location(string name) => Name = name;
public Location(string name)
{
Name = name;
}
Финализаторы
Определение тела выражения для финализатора обычно содержит операторы очистки, например операторы, освобождающие неуправляемые ресурсы.
public class Destroyer
{
public override string ToString() => GetType().Name;
~Destroyer() => Console.WriteLine($"The {ToString()} destructor is executing.");
~Destroyer()
{
Console.WriteLine($"The {ToString()} destructor is executing.");
}
}
Операции получения и установки свойства
Если вы решите реализовать метод доступа для получения свойства самостоятельно, вы можете использовать определение тела выражения для отдельных выражений, которые просто устанавливают или возвращают значение свойства.
public string Name
{
get => locationName;
set => locationName = value;
}
public string Name
{
get
{
return locationName;
}
set
{
locationName = value;
}
}
Свойства только для чтения
PropertyName => returnValue;
public string Name
{
get
{
return someValue;
}
}
Индексаторы
Подобно свойствам, методы доступа get и set индексатора состоят из определений тела выражения, если метод доступа get состоит из одного оператора, возвращающего значение, или метод доступа set выполняет простое присваивание.
public string this[int i]
{
get => types[i];
set => types[i] = value;
}
public string this[int i]
{
get
{
return types[i];
}
set
{
types[i] = value;
}
}
Также не следует путать с Автоматически реализуемые инициализированные свойства
Автоматически реализуемые инициализированные свойства C#
public string Name { get; set; } = "Joe";
Что в основном похоже на установку свойства в вашем конструкторе
30.07.2018