Страницы

Поиск по вопросам

суббота, 6 октября 2018 г.

Что такое делегат в языке С#?

Объясните простым, человеческим языком, кто такой и зачем нужен делегат в ООП вообще и в С# в частности?


Ответ

Делегат — это объектно-ориентированный способ работы с методом как с переменной. Его более привычный аналог — указатель на функцию, функтор, или даже просто вектор прерывания (спасибо @rdorn за подсказку).
Делегат представляет собой тип, соответствующий определённой сигнатуре функции. Объявив переменную делегатного типа, вы можете записать в неё статический или нестатический метод, передать его как аргумент куда-либо, и вызвать.
Классический пример использования делегатов — сортировка списка объектов по значению какого-либо поля. Вы передаёте в сортирующий метод делегат, который по объекту вычисляет ключ сортировки, то есть, вытаскивает значение поля.

Комментариев нет:

Отправить комментарий