Ist es schlecht für eine C # -Klasse, ihre eigenen veröffentlichten Ereignisse zu abonnieren?

Ich bin wahrscheinlich nur neurotisch, aber ich finde mich regelmäßig in Situationen wieder, in denen ich eine Klasse habe, die ein Ereignis veröffentlicht, und ich finde es bequem, dieses Ereignis innerhalb der Klasse selbst (z. B. im Konstruktor) zu abonnieren, anstatt nur von externen Klassen abonnieren.

Das hört sich für mich vernünftig an, aber ich kann dem nörgelnden Gefühl, dass es eine schlechte Praxis ist, nicht entgegenwirken, weil ich immer vor der Frage stehe: "Warum nicht die Aktionen ausführen, die Sie für die Veranstaltung bereitstellen würden? Handler in dem Code, der das Ereignis auslöst? "

public class Button
{
   public Button()
   {
      this.Click += someHandler; // bad practice?
   }

   public event EventHandler Click;

   public void HandleInput()
   {
      if (someInputCondition)
      {
         // Perform necessary actions here rather than 
         // subscribing in the constructor?
         this.Click(this, ...);
      }
   }
}

Gibt es irgendwelche Nachteile, wenn Sie Ihre eigenen Veranstaltungen abonnieren?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage