Делегат (программирование)
Делегат (англ. delegates) — безопасный указатель на функцию. Безопасный в том плане, что строго указаны тип возвращаемого значения и аргументы метода(сигнатура). Делегаты введены в C# и других языках технологии Microsoft .NET реализованной в виде платформы .NET Framework для определения прототипа функции обратного вызова. Делегаты, так же, можно назвать псевдонимом сигнатур методов.
Из объявления типа делегата компилятор генерирует класс, производный от System.MulticastDelegate
. Таким образом, сигнатура функции, принимающей делегат в качестве аргумента, может выглядеть так:
public MyFunction (Delegate anotherFunction);
Дополнительной особенностью делегатов является то, что их можно вызывать асинхронно асинхронный делегат, с помощью метода BeginInvoke()
. В этом случае в пуле потоков ищется свободный и указанная функция выполняется параллельно в его контексте. Стоит однако отметить, что количество потоков в пуле ограничено (в текущей реализации .NET их 25), и остальные вызовы будут ждать своей очереди.
Пример объявления и использования делегата
using System;
// Объявление делегата
delegate void MyDelegate(string a);
class DelegateExample
{
static void Func(string param)
{
System.Console.WriteLine("Вызвана функция с параметром {0}.", param);
}
public static void Main()
{
// Создание экземпляра делегата
MyDelegate f = new MyDelegate(Func);
// Вызов функции
f("hello");
}
}
Пример выводит на консоль строку «Вызвана функция с параметром hello.».
См. также
Ссылки
Информатика | Это незавершённая статья по информатике. Вы можете помочь проекту, исправив и дополнив её. |
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....