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

Логин

Email:
  Пароль:

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

Поиск

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

Сообщение

xopap


Молчун

Зарегистрирован:
17 July 2006
Сообщения: 30
Примеры кода: 0
 

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

27 December 2007 20:05  


Есть вот такой код:
internal class Program {
		public void SimpleCallback(object sender, EventArgs eargs) {}

		public event EventHandler<EventArgs> someEvent;

		public virtual void OnSomeEvent() {
			EventHandler<EventArgs> temp = someEvent;
			if(temp != null) {
				// например, тут влезает другой поток:
				someEvent = null;
				
				temp(this, EventArgs.Empty); <b>// ? Почему вызывается SimpleCallback(), а не throw NullRefferenceException ?</b>
			}
		}

		public static void Main(string[] args) {
			Program p2 = new Program();
			p2.someEvent += p2.SimpleCallback;
			p2.OnSomeEvent();
		}
	}


В методе OnSomeEvent() создается локальная переменная temp, которая, как я думал, является ссылкой на someEvent, но код ниже выполняется.. Выходит, что temp это копия, а не ссылка...
Объясните пожалуйста, как работает этот код.

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



Общие вопросы программирования на 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
Карта сайта