Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 29.06.2016, 10:58   #1
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Делегаты и Эвенты

Возникла необходимость отписаться ото всех подписчиков события (хотят они того или нет).
Нашёл пару тем на стэке.
Кто-то сказал, что достаточно занулить переменную.
Я не поверил. А вот второй ответ похож на правду:
if (myDlgHandler != null)
  foreach (var 
d in myDlgHandler.GetInvocationList())
       
myDlgHandler -= (as MyDelegate); 
Хотел написать универсальный экстеншен, но увы, нельзя юзать конструкцию
where T : class, Delegate
И второе - решарпер предостерегает: http://www.jetbrains.com/help/reshar...btraction.html
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (19.11.2016)
Старый 29.06.2016, 11:44   #2
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Делегаты и Эвенты

По первому: правильно сделал, что не поверил.
По второму: в чём суть вопроса? Ну да, решарпер подчеркивает код при использовании + и - с делегатами, потому что они работают неочевидно. Но это только для вызовов делегатов, поэтому, если этот вопрос связан с предыдущим, то я не уловил суть.
(Offline)
 
Ответить с цитированием
Старый 29.06.2016, 15:11   #3
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Делегаты и Эвенты

Вопроса нет.
Просто поделился находкой, вдруг кому-то пригодится.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:41.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com