Delegate
Автор KOLANICH задал вопрос в разделе Другие языки и технологии
Делегаты. Что такое делегаты? Подробно и популярно плз. На хабре и в википедии уже читал и ничего не понял. и получил лучший ответ
Ответ от Антон -[гуру]
Грубо говоря, это такой способ записать функцию в переменную.
Например, есть функция сортировки, она должны знать 2 вещи:
1) что сортировать (массив)
2) как сортировать (по какому критерию, как определить что должно стоять раньше, а что позже)
С первым аргументом всё просто. А вот "как сортировать" можно объяснить только кодом. Соответственно нужно передавать функции сортировки другую функцию, которая сможет выполнить сравнение любых двух элементов и вернуть результат сравнения.
Функции сравнения могут быть разными, сравнивать можно по возрастанию, по убыванию, по каким то другим критериям. А вот алгоритм сортировки от этого не меняется, нужно в любом случае как-то сравнить 2 элемента.
Вот чтобы передать одной функции другую функцию и используются делегаты. В нашем примере обязанности сравнения элементов как бы делегируются функции-делегату.
delegate int ComparerDelegate(double x, double y);
Функция сортировки:
void Sort(double[] array, ComparerDelegate comparer)
{
// тут сортировка с применением делегированного функционала сравнения
}
Пример с кодом ссылка.
KOLANICH
Гуру
(4578)
нормальный уровень, спасибо.
просто на хабре есть несколько статей про делегаты в с++, но они больно мудрёные, и выглядят так, как будто речь идёт о паттерне "подписчик"
а в википедии вообще нормальной инфы нет
в си/си++ это указатель на функцию, я верно вас понял ?
xhacker ru написано NOT DELEGATED значит заблокирован????
NOT DELEGATED - это значит "не делегирован", другими словами этот домен в данный момент никем не
подробнее...
УЗнать на каком сайте была произведена регистрация домменого имени
domain: SOFTERFREE.RU
nserver: ns1.tickethost.info.
nserver: ns2.tickethost.info.
подробнее...
Интернет магазин siax.ru лохотрон или нет??
domain: SIAX.RU
type: CORPORATE
nserver: ns1.jino.ru.
nserver: ns2.jino.ru.
state:
подробнее...
напишите перевод, очень нужно
Let me tell you about my sea journey which I had in the age of seven.
Come up to the blackboard
подробнее...
Поможете мне сделать перевод? плизззз
These news will be discused after lessons.
The windows will be washed in the end of the
подробнее...
Что это за сайт??
Это типо счетчик для сайта, вот данные где и кем и когда бы зарегистрирован он:
domain:
подробнее...
Что делать, если украли сайт? (Подробности внутри)
вот выдача whois по доменному имени:
domain: LYOVKIN.RU
type: CORPORATE
nserver:
подробнее...
Подскажите Host mail.ru
domain: MAIL.RU
type: CORPORATE
nserver: ns.mail.ru. 194.67.23.130
nserver: ns1.mail.ru.
подробнее...
может мне книжку написать по 3д макс, или по си шарп для чайников, а?!
Не пиши, все равно сопрут.. .
Лучше скажи как из VB.NET 10-ки достать EXCEL.
В частности как
подробнее...
Пожалуйста помогите написать inquiry letter (запросное письмо) на английском языке! Есть пример, см.внутри!
Неплохой перевод.
Я бы сделал так:
Dear Sirs or Madams,
We were
подробнее...
Vb. net и многопоточность UI
В Вашем примере НЕ создается поток. BeginInvoke предназначен для вызова методов кантрола из потока,
подробнее...
Как узнать кому принадлежит сайт? И как связаться с собственником этого сайта?
domain: MYSLIGLOBALNO.RU
type: CORPORATE
nserver: dns1.naunet.ru.
nserver:
подробнее...
Преобразуйте,пожалуйста, прямую речь в косвенную
1. She said: “I will finish my work by the end of this month”. - She said that she would finish her
подробнее...
DNS сервера mail.ru
domain: MAIL.RU
type: CORPORATE
nserver: ns.mail.ru. 94.100.178.70
nserver:
подробнее...