![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Unsane |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 8.6.2007 Репутация: 2 Всего: 5 |
Вот возник такой вопрос.
На одно и тоже событие можно повесить несколько обработчиков. Например:
Можно ли получить список этих обработчиков и отключить, например, первый и третий? --------------------
Я дурак.. Этим и интересен! |
|||
|
||||
HAL707 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 6.9.2007 Репутация: 1 Всего: 4 |
|
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: 8 Всего: 28 |
Думаю он не совсем это имел ввиду, а вывести к примеру список подключенных обработчиков..
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
Unsane |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 8.6.2007 Репутация: 2 Всего: 5 |
Именно так. ![]() --------------------
Я дурак.. Этим и интересен! |
|||
|
||||
vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 2 Всего: 12 |
Unsane, по-моему нет готового механизма для решения вашей задачи
как вариант, можно при добавлении обработчика событий записывать его куда-нить и в случае необходимости удалять его оператором -= хотя конечно как-то некрасиво получается ![]() |
|||
|
||||
Ctrl |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 12.2.2008 Где: Tula Репутация: нет Всего: 7 |
Тут все зависит от того является ли это событие собственным событием класса или это событие другого класса.
Во втором случае простых решений нет, а вот в первом вполне можно кое чего сделать. Вот пример из которого становится ясна моя идея:
|
|||
|
||||
vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 2 Всего: 12 |
Ctrl, сорри за глупый вопрос, но почему нельзя вызвать GetInvocationList из класса формы для какого-нить события (например, MouseDown)?
|
|||
|
||||
Ctrl |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 12.2.2008 Где: Tula Репутация: нет Всего: 7 |
Вопрос не глупый, на самом деле в данной ситуации есть одна засада:
Вот кусок кода:
А вот как он выглядит в IL:
Компилятор завернул все что надо в поле, которое поддерживает только 2 операции (+= -= ), и на любое действие со стороны он скажет следующее:
и будет прав ![]() Добавлено через 1 минуту и 23 секунды Так что, как я писал выше простых решений тут нет |
||||||
|
|||||||
RedsAn |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 12.3.2008 Репутация: 1 Всего: 1 |
Спасибо Ctrl!
Показательный пример. Только для тестирования надо атрибуты указать: [TestFixture] для Program и [Test] для TestIt() + сделать этот метод экземплярным. |
|||
|
||||
Ctrl |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 12.2.2008 Где: Tula Репутация: нет Всего: 7 |
2RedsAn: с этими аттрибутами и с техникой юнит-тестирования я отлично знаком...
Ну на самом деле целью было просто попользовать Assert, дабы не возникали при взгляде на код лишние вопросы "ЭЭЭЭЭ ... а как это работает?" |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |