Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

делегат с эвентом и без - чем отличаются?

10.05.17 08:38
Re: делегат с эвентом и без - чем отличаются?
 
anly коренной житель
anly
в ответ AlexNek 09.05.17 23:55, Последний раз изменено 10.05.17 08:48 (anly)
А вот потерять уведомление гораздо печальней
конечно пример что я привел, можно переписать и так чтобы никто уведомлений не терял. Но надо ли?

Допустим на эвент FormClosing подписалось куча подписчиков, и если первый из них сказал Cancel=true, то форма, на мой взгляд, вполне может не дёргать остальных подписчиков, ввиду того что закрытие отменилось. А вот если таки станет дергать, то какой-то очередной подписчик скажет Cancel=false тем самым сделав проблемы первому. (Кстати именно так и происходит в Windows.Forms). А подписчики в идеале не должны ничего знать друг о друге.

Ну и использование GetInvocationList() тоже как бы извращение.
ну тогда придется не пользоваться эвентами, а городить свою личную коллекцию делегатов.

Хотя можно конечно в каждом подписчике писать if (!e.Cancel)...

Проклят нарушающий межи ближнего своего (Втор.27:17)
 

Перейти на