Was ist der Unterschied zwischen Veranstaltungen mit Delegierten Handlers und ohne?
Frage
Was ist der Unterschied zwischen diesen:
this.btnOk.Click += new System.EventHandler(this.btnOK_Click);
und das?
this.btnOk.Click += this.btnOK_Click;
Beide arbeiten. Ersteres ist, was Visual Studio standardmäßig, wenn Sie die Schnipsel verwenden. Aber es scheint, als ob es nur Anzeigen zusätzliche Wortschwall, oder bin ich etwas fehlt?
Lösung
Kein Unterschied. die Delegateninstantiierungsausdruck Weglassen ist nur Syntax Süßigkeiten; der C # -Compiler die Delegateninstantiierungsausdruck für Sie unter der Haube erzeugen.
Andere Tipps
In C # 3.0 und höher ist dies kein Unterschied. Vor dem C # 3.0 Eventhandler wurden erforderlich aufgrund Compiler Einschränkungen, aber mit dem Aufkommen von C # 3.0, die zweite Form bevorzugt, es sei denn, Sie sehr explizit sein wollen.
Ich glaube, dass C # seit 3.0 hat implizit den Delegaten Handler hinzugefügt. Allerdings kann es helfen, deutlicher zu sein, vor allem, wenn es mehr möglichen Delegattypen.
"+ = Delegate_Name" ist ein Syntax Zucker. Compiler wird für Sie neue Wrapper erstellen.