TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.77K subscribers
Post #163 520
День сто тридцать четвёртый. #ЗаметкиНаПолях
Анонимные методы
Создание анонимных методов – это способ передать блок кода в качестве параметра делегата:
button1.Click += delegate(System.Object o, EventArgs e)
{ MessageBox.Show("Click!"); };
…
// Создание делегата
delegate void Del(int x);
// Инициализация делегата анонимным методом
Del d = delegate(int k) { /* … */ };
Анонимные методы упрощают создание экземпляров делегатов, т.к. не нужно создавать отдельный именованный метод. Это может быть полезно в ситуации, когда создание метода не требуется, например, при создании нового потока:
void StartThread()
{
Thread t1 = new Thread
(delegate()
{
Console.Write("Hello, ");
Console.WriteLine("World!");
});
t1.Start();
}

Замечания
- Область действия параметров анонимного метода - блок анонимного метода.
- Нельзя использовать операторы перехода (goto, break или continue) из анонимного метода во внешний код, либо наоборот.
- Анонимный метод не может получить доступ к параметрам in, ref или out внешней области определения.
- В пределах блока анонимного метода нельзя получить доступ к небезопасному коду.
- Анонимные методы не допускаются в левой части оператора is.
- Локальные переменные и параметры, определённые в той же области, что и анонимный метод, называются внешними переменными анонимного метода:
int n = 0;
Del d = Delegate() {System.Console.WriteLine ("Copy #: {0}", ++n); };
Ссылка на внешнюю переменную n захватывается при создании делегата. В отличие от локальных переменных, время жизни захваченной переменной увеличивается до тех пор, пока делегаты, ссылающиеся на анонимные методы, не будут подходить для сборки мусора.

Источник: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/anonymous-methods
More from @netdeveloperdiary
  1. Oct 10, 2026День 2810. #ЧтоНовенького #VSCode Более Быстрый и Лёгкий C# Dev Kit Мы, разработчики, люби…
  2. Oct 9, 2026День 2809. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Окончание Начало 3.…
  3. Oct 8, 2026День 2808. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Начало В ИТ есть се…
  4. Oct 7, 2026День 2807. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Окончание Нач…
  5. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  6. Oct 6, 2026День 2806. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Начало Больши…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →