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?