Регистрация событий внутри конструктора?

Я играл с делегатами, событиями и анонимными методами. При этом один момент стал очень ясным.

Разве это не упростило бы процесс регистрации каких-либо методов событий или функций делегирования в конструкторе?

Мои тесты показывают, что это работает, и избавляют вас от необходимости объявлять их после создания экземпляра (поскольку конструктор объекта делает это за вас).

На самом деле производительность неплохая. Есть ли недостатки в использовании ключевого слова this для ссылки на текущий объект при создании / создании экземпляра объекта?

Мне кажется, это имеет большой смысл, поскольку все события будут связаны при создании экземпляра.

В каких областях это может быть проблемой?

Пример:

//Constructor
public SayHello() 
{
  _name = "Unnamed";
  _isUpdated = false;

  // Register event handler via lambda (ananymous method shorthand)
  this.NameChanged += (object sender, EventArgs e) => { Console.WriteLine(e.message)); };
}
6
задан CodesInChaos 9 December 2011 в 13:49
поделиться