Рубрика: C#
Все-таки решил вчера посидеть и делегаты в C# изучить до конца (получить практический опыт, а не только теоретический). В теории было более-менее все понятно, но не понятным оставалось то, как работает этот механизм (на практике еще не встречался с ним).
Все-таки решил вчера посидеть и делегаты в C# изучить до конца (получить практический опыт, а не только теоретический). В теории было более-менее все понятно, но не понятным оставалось то, как работает этот механизм (на практике еще не встречался с ним).
Грубо
говоря, делегат — это контейнер для
функций. Все события-обработчики
каких-либо действий (клик по кнопке,
загрузка формы и так далее) — это тоже
делегаты, их иногда еще недоделегатами
называют, правда еще не разобрался,
почему.
В общем,
в делегат можно инкапсулировать
какой-либо код, причем делегат не будет
знать, что это за код (метод). Какой метод
можно засунуть в делегат зависит от
формы делегата. Например, в делегат:
delegate
void DelName(int var);
Можно
инкапсулировать метод:
void
MyFunc(int var);
{
//Мой
код моей функции
}
Результат
и параметры у делегата и метода одинаковые.
Всего многообразия использования
делегатов в C# я пока не разобрал, но
движусь в этом направлении. В первый
день изучения делегатов я долго искал
простой и понятный пример. Вот он:
1.
public delegate void DelName(string message);
2.
public static void DelMethod(string message)
{
MessageBox.Show(message);
}
3.
…
4.
//При нажатии на кнопку
5.
DelName de = DelMethod;
6.
de("Delegate");
Что есть
что. В первой строке объявляю делегат
DelName. В него можно засунуть метод,
возвращающий void и принимающий строковую
переменную message. Во второй строке объявляю
такой метод (статический) DelMethod, который
принимает строковую переменную и выводит
ее в MessageBox. Все просто.
Затем,
в пятой строке я создаю экземпляр
делегата (de), указываю метод, который
делегат должен запускать. В шестой
строке передаю экземпляру делегата
переменную. Экземпляр делегата передает
переменную в метод, который инкапсулирован
в него (DelMethod). Метод отрабатывает и
появляется необходимое сообщение:
Это самый
простой пример использования делегатов
в C#, который я нашел. Но таким образом,
как я понял, делегаты не используются.
Их сфера применения шире. Так что еще
изучать и изучать. Но сегодня будет
первый шажок в большой мир делегатов
C#.
Кстати,
если вы хотите разбираться не только в
делегатах C#, но еще и в питании — советую
почитать сайт, на котором можно найти
много полезной информации про здоровое
питание. Там и о голодании рассказано,
и о движении, в общем — обо все, что важно
для правильного питания. Иногда читаю
там некоторые статьи.
Комментариев нет:
Отправить комментарий