Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как снять обработчика события если... 
:(
    Опции темы
Dims
Дата 28.1.2009, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Как снять обработчика события, если он зарегистрирован так

Код

task.DetailsChanged += new EventHandler(task_DetailsChanged);


Не могу же я сделать так

Код

task.DetailsChanged -= new EventHandler(task_DetailsChanged);


или так

Код

task.DetailsChanged -= task_DetailsChanged;


Или могу?


PM MAIL   Вверх
diadiavova
Дата 28.1.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142





--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Dims
Дата 28.1.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Чё-то не втыкаю, особенно с машинным переводом. 
Получается, последним способом надо действовать?
PM MAIL   Вверх
Drabuna
Дата 28.1.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: нет
Всего: 3



Код

    
task.DetailsChanged -= task_DetailsChanged;



Труъ.
PM MAIL   Вверх
emmanuil
Дата 31.1.2009, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 9.1.2007

Репутация: нет
Всего: 3



Можно и так:
Код

task.DetailsChanged += new EventHandler(task_DetailsChanged);
task.DetailsChanged -= new EventHandler(task_DetailsChanged);

и так (лишь бы сигнатура метода совпадала с делегатом):
Код

task.DetailsChanged += task_DetailsChanged;
task.DetailsChanged -= task_DetailsChanged;

Равносильные два способа.
Или вот так:
Код

EventHandler eh = new EventHandler(task_DetailsChanged);
task.DetailsChanged += eh;
task.DetailsChanged -= eh;

PM MAIL   Вверх
nyxiscoo1
Дата 4.2.2009, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 15.6.2008

Репутация: нет
Всего: нет



а как отписаться от события, если 
Код

task.DetailsChanged += (o, e) => 
{ 
     /*DoSmthn*/ 
};


Вопрос снят, нашел по ссылке выше:
Цитата

It is important to notice that you cannot easily unsubscribe from an event if you used an anonymous function to subscribe to it. To unsubscribe in this scenario, it is necessary to go back to the code where you subscribe to the event, store the anonymous method in a delegate variable, and then add the delegate to the event. In general, we recommend that you do not use anonymous functions to subscribe to events if you will have to unsubscribe from the event at some later point in your code. 



Это сообщение отредактировал(а) nyxiscoo1 - 4.2.2009, 12:12
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.