13 Stimmen

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

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

Das klingt für mich vernünftig, aber ich kann das nagende Gefühl nicht loswerden, dass es eine schlechte Praxis ist, einfach aus dem Grund, dass ich immer mit der Frage konfrontiert bin: "Warum führen Sie nicht die Aktionen aus, die Sie im Ereignishandler bereitstellen würden, im Code aus, der das Ereignis auslöst?"

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

   public event EventHandler Click;

   public void HandleInput()
   {
      if (someInputCondition)
      {
         // Führen Sie hier die erforderlichen Aktionen aus, anstatt 
         // sie im Konstruktor zu abonnieren?
         this.Click(this, ...);
      }
   }
}

Gibt es Nachteile beim Abonnieren eigener Ereignisse?

0voto

Nour Punkte 4880

Wenn Sie die gewöhnliche System.Windows.Form-Klasse als Beispiel nehmen,
wenn Sie das Form_Load-Ereignis behandeln möchten (mit dem Visual Studio Designer), wird es in der Klasse des Formulars selbst behandelt!

this.Load += new System.EventHandler(this.Form1_Load);

private void Form1_Load(object sender, EventArgs e)
{
}

Also denke ich, dass es überhaupt kein Problem ist!!.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X