Делегаты (Руководство по программированию на C#)
делегат - это тип, который представляет собой ссылки на методы с определенным списком параметров и возвращаемым типом.При создании экземпляра делегата этот экземпляр можно связать с любым методом с совместимой сигнатурой и возвращаемым типом. Метод можно вызвать (активировать) с помощью экземпляра делегата.
public delegate int PerformCalculation(int x, int y);
Примечание |
---|
|
Общие сведения о делегатах
Делегаты имеют следующие свойства.
-
Делегаты похожи на указатели функций в C++, но являются типобезопасными.
-
Делегаты позволяют производить передачу методов подобно обычным параметрам.
-
Делегаты можно использовать для определения методов обратного вызова.
-
Делегаты можно связывать друг с другом; например, при появлении одного события можно вызывать несколько методов.
-
Точное соответствие методов типу делегата не требуется. Дополнительные сведения см. в разделе Использование вариативности в делегатах (C# и Visual Basic). -
В C# версии 2.0 введена концепция анонимных методов, которые позволяют передавать блоки кода в виде параметров вместо использования отдельно определенного метода. В C# 3.0 для краткой записи встроенных блоков кода введены лямбда-выражения. В результате компиляции как анонимных методов, так и лямбда-выражений (в определенном контексте) получаются типы делегатов. В настоящее время эти возможности называются анонимными функциями.Дополнительные сведения о лямбда-выражениях см. в разделе Анонимные функции (Руководство по программированию на C#).
Содержание
Спецификация языка C#
Дополнительные сведения см. в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.