Что делает оператор =>
В документации написано, что опертор => не может быть перегружен, однако кроме объявления лямбда выражений, я видел подобное использование: static int a => 5; И теперь к а можно обращаться как к константе этого класса. Почему оно так работает?
Ответы (1 шт):
В документации явно указано, что токен => может встречаться в двух случаях:
lambda operator: в этом случае он разделяет входные параметры, указываемые слева от него, от тела лямбды, расположенного справа.
Expression body definition: в этом случае слева указывается описание члена класса, справа - тело выражения.
Синтаксис в общем виде выглядит так:member => expression;пример с методом
ToString, записьpublic override string ToString() => $"{fname} {lname}".Trim();равносильна следующей
public override string ToString() { return $"{fname} {lname}".Trim(); }В вопросе запись
static int a => 5;равносильнаreadonly propertystatic int a { get; } = 5