Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

LiteX


Болтун

Зарегистрирован:
13 April 2005
Сообщения: 264
Примеры кода: 0
 

C# events и паттерн их вызова

27 December 2007 22:45  


При компиляции код
public event EventHandler<EventArgs> someEvent;
преобразуется к виду
private EventHandler<EventArgs> someEvent = null;

[MethodImpl(MethodImplOptions.Synchronized)]
public void add_someEvent(EventHandler<EventArgs> value){
   someEvent = (EventHandler<EventArgs>)Delegate.Combine(someEvent, value);
}

[MethodImpl(MethodImplOptions.Synchronized)]
public void remove_someEvent(EventHandler<EventArgs> value){
   someEvent = (EventHandler<EventArgs>)Delegate.Remove(someEvent, value);
Теперь посмотрим на код метода remove (после проверок вызывается метод RemoveImpl)
.method family hidebysig newslot virtual instance class System.Delegate RemoveImpl(class System.Delegate d) cil managed
{
    .maxstack 8
    L_0000: ldarg.1 
    L_0001: ldarg.0 
    L_0002: callvirt instance bool System.Object::Equals(object)
    L_0007: brtrue.s L_000b
    L_0009: ldarg.0 
    L_000a: ret 
    L_000b: ldnull 
    L_000c: ret 
}



В нашем случае данный метод вернет null.

Фактически перемеменная temp (после temp = someEvent) будет указывать на делегат.
После метода remove_someEvent, someEvent присваивается null, а temp все так же указывает на делегат

Mastering .NET doesn`t make you a geek. It makes you a geek worthy of a raise. (с) Jeffrey Richter

Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 27 December 2007 22:44
Наверх
  



Общие вопросы программирования на ASP.NET

 C# events и паттерн их вызоваxopap  27 December 2007 20:05
 C# events и паттерн их вызоваLiteX  27 December 2007 20:25
 C# events и паттерн их вызоваxopap  27 December 2007 21:28
 C# events и паттерн их вызоваLiteX  27 December 2007 22:45
 C# events и паттерн их вызоваDarkoboar  06 February 2008 12:21
 C# events и паттерн их вызоваeisernWolf  07 February 2008 02:14
 C# events и паттерн их вызоваxopap  27 December 2007 23:18
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта