Релевантные источники:
- [Microsoft](https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/lambda-operator)
- [Metanit](https://metanit.com/sharp/tutorial/3.16.php)
Оператор `=>` в C# называется оператором лямбда или стрелочным оператором.
Он используется для определения лямбда-выражений и выражений-членов (expression-bodied members),
Он предоставляет синтаксический сахар для создания анонимных функций, методов, свойств, индексаторов и других членов классов в сжатой форме. Этот оператор улучшает лаконичность и читаемость кода, позволяя выразить функциональность в более компактном и выразительном стиле.
> Код, написанный после «=>», будет выполняться каждый раз при обращении к этому коду.
Все возможные синтаксисы, в котором применяется токен =>
```
member => expression;
(input-parameters) => expression;
(input-parameters) => { <sequence-of-statements> };
```
### Применение
##### Лямбда-выражения
- [[Лямбда-выражение (lambda expression)|Что такое лямбда-выражение?]]
##### Выражения-методы
Создание методов с однострочной реализацией без ключевого слова `return`.
Сокращенный синтаксис
```csharp
public int Subtract(int a, int b) => a - b;
```
Полный синтаксис
```csharp
public int Subtract(int a, int b)
{
return a - b;
}
```
##### Выражения-свойства
Определение свойств с геттерами
Сокращенный синтаксис
```csharp
public int Age => 30;
```
Полный синтаксис
```csharp
public int Age
{
get
{
return 30;
}
}
```
##### Выражения-конструкторы и финализаторы
Использование для выполнения простых действий в конструкторах и деструкторах.
```csharp
public Person(string name) => Name = name;
~Person() => Console.WriteLine("Finalizing");
```
##### Выражения-индексаторы
Определение индексаторов для классов или структур.
```csharp
public int this[int index] => myList[index];
```
##### Локальные функции
Определение локальных функций внутри методов для конкретных задач.
```csharp
public void ExampleMethod() {
int Add(int x, int y) => x + y;
}
```