Делегат (программирование)

Делегат (программирование)

Делегат (англ. delegates) — структура данных, указывающая на статические методы или методы экземпляра класса в .NET Framework[1][2][3][4].

Делегаты используются, в частности, для определения прототипа функции обратного вызова, например, в событийной модели .NET Framework.

Содержание

Описание

Из объявления типа делегата компилятор генерирует класс, производный от System.MulticastDelegate. Таким образом, сигнатура функции, принимающей делегат в качестве аргумента, может выглядеть так:

public MyFunction (Delegate anotherFunction);

Дополнительной особенностью делегатов является то, что их можно вызывать асинхронно, с помощью метода BeginInvoke(). В этом случае в пуле потоков подбирается свободный и указанная функция выполняется параллельно в его контексте. Стоит однако отметить, что количество потоков в пуле ограничено (в текущей реализации .NET их 25), и остальные вызовы будут ждать своей очереди.

Пример объявления и использования делегата

using System;
using Delegsts;
 
// Объявление делегата
delegate void MyDelegate(string a);
 
class DelegateExample
{
    static void Func(string param)
    {
        Console.WriteLine("Вызвана функция с параметром {0}.", param);
    }
 
    public static void Main()
    {
        // Создание экземпляра делегата
        MyDelegate f = new MyDelegate(Func);
        // Вызов функции
        f("hello");
    }
}

Пример выводит на консоль строку «Вызвана функция с параметром hello.».

См. также

Примечания



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Делегат (программирование)" в других словарях:

  • Делегат — (программирование) Делегат представитель какой либо организации …   Википедия

  • Событийно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная …   Википедия

  • Функтор (программирование) — У этого термина существуют и другие значения, см. Функтор. Функциональный объект (англ. function object), так же функтор, функционал и функционоид   распространённая в программировании конструкция, позволяющая использовать объект как… …   Википедия

  • Делегация — Делегация  группа людей, выделенных от правительства, организации, сообщества. Таких представителей обычно называют делегатами. Делегирование: Делегирование полномочий  организация работы, при которой руководитель распределяет свою… …   Википедия

  • Делегаты — Делегат (англ. delegates) безопасный указатель на функцию. Безопасный в том плане, что строго указаны тип возвращаемого значения и аргументы метода(сигнатура). Делегаты введены в C# и других языках технологии Microsoft .NET реализованной в виде… …   Википедия

  • Сравнение языков программирования — Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей.  Условные обозначения  …   Википедия

  • Nemerle — Семантика: мультипарадигменный, объектно ориентированный, функциональный, императивный Тип исполнения: компилируемый Появился в: 0.9.3 16 мая …   Википедия

  • Сравнение C Sharp и Java — Правильный заголовок этой статьи  Сравнение C# и Java. Он показан некорректно из за технических ограничений. Сравнения языков программирования Общее сравнение Основной синтаксис Основные инструкции Массивы Ассоциативные массивы Операции со… …   Википедия

  • Ливан (государство) — Ливан, Ливанская Республика (Аль Джумхурия аль Лубнания). 1. Общие сведения Л. государство в Западной Азии, на восточном побережье Средиземного моря. Граничит на С. и В. с Сирией, на Ю. В. с Израилем, на Ю. к Л. прилегает часть территории,… …   Большая советская энциклопедия

  • Ливан — I Ливан (араб. Джебель Лубнан)         горный хребет в Республике Ливан. Протягивается на 170 км вдоль восточного берега Средиземного моря, на В. ограничен впадиной Бекаа. Высота до 3083 м (г. Курнет эс Сауда). Сложен преимущественно известняками …   Большая советская энциклопедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»