C#
Вопрос про делегаты - callbacks/делегирования, зачем же нужны эти делегаты
Все примеры которые показывают в учебниках на тему что такое делегаты, я могу переделать эти примеры без делегата, прочитал кучу статей, книг, видео на ютубе, и никак не могу понять зачем нужны эти делегаты. Пожалуйста покажите пример где без делегата вообще не обойтись
Делегаты нужны для упрощения жизни разработчиков. Большинство современных промышленных языков программирования большей частью состоят из конструкций, которые не привносят в язык никакого нового функционала, но ускоряют написание кода.
Хочешь язык, в котором нет ничего лишнего - смотри в сторону Go.
Хочешь язык, в котором нет ничего лишнего - смотри в сторону Go.
Михаил Коваль
Можете накидать код на C# с применением делегата? нужен пример который нельзя переделать без делегата
Делагаты сами по себе обычно бесполезны, они нужны для действий Action Delegate посмотри что такое действия, это часто очень используется.
Если коротко, на простом примере, то можно пояснить так. У каждого объекта, пусть даже визуального, например, у кнопки, есть указатели на функции (методы) обработки его данных или событий. Функция (метод) - делегат присваивается такому указателю на функцию (объекта), а потом может запуститься (сработать), когда надо, например, когда будет клик на кнопке.
Допустим, у нас есть кнопка с одним указателем:
#include<stdio.h>
//функция-делегат:
void delegat(int addr)
{
printf("\nButton %d is clicked...",addr);
}
//объект кнопка:
typedef struct button
{
char name[25];
void (*delegat)(int addr);//указатель на функцию
} button;
int main()
{
button MyButton;
//присвоить указателю на функцию
//кнопки функцию делегата:
MyButton.delegat=delegat;
//запустить делегата:
MyButton.delegat(35);
system("pause");
return 0;
}

Допустим, у нас есть кнопка с одним указателем:
#include<stdio.h>
//функция-делегат:
void delegat(int addr)
{
printf("\nButton %d is clicked...",addr);
}
//объект кнопка:
typedef struct button
{
char name[25];
void (*delegat)(int addr);//указатель на функцию
} button;
int main()
{
button MyButton;
//присвоить указателю на функцию
//кнопки функцию делегата:
MyButton.delegat=delegat;
//запустить делегата:
MyButton.delegat(35);
system("pause");
return 0;
}

>> зачем же нужны эти делегаты ...
Делегаты- делегируют.
>> Пожалуйста покажите пример ...
Ну вот смотри есть к примеру таблица по типу экселя 10 тышь на 10 тышь строк и столбцов и тебе необходимо обработать клик мышкой по ячейке в этой таблице.
Ты либо пишешь один миллион функций обработчиков онклик либо делегируешь обработку клика от всех ячеек одному делегату у которого должна остаться связь ссылка на объект который делегировал делегату.
от лат. ligo «связывать, соединять»
Делегаты- делегируют.
>> Пожалуйста покажите пример ...
Ну вот смотри есть к примеру таблица по типу экселя 10 тышь на 10 тышь строк и столбцов и тебе необходимо обработать клик мышкой по ячейке в этой таблице.
Ты либо пишешь один миллион функций обработчиков онклик либо делегируешь обработку клика от всех ячеек одному делегату у которого должна остаться связь ссылка на объект который делегировал делегату.
от лат. ligo «связывать, соединять»
Михаил Коваль
Пожалуйста напишите короткий код/пример на C#, очень вас прошу
Похожие вопросы
- Картинка взята из METANIT.COM 6 глава Делегаты
- Нужен человек для Юнити
- Нужна помощь с созданием первой игры на Unity
- Нужны ли знание алгебры/геометрии для c#.
- Нужна помощь с задачей C#
- Нужна помощь С#
- Нужны скрипты в Unity 3д.
- Нужна помощь с языком C#
- Зачем в C# нужны типы данных?
- Базовые классы C# Нужен код такой большой