Was ist der Unterschied zwischen Veranstaltungen mit Delegierten Handlers und ohne?

StackOverflow https://stackoverflow.com/questions/119160

  •  02-07-2019
  •  | 
  •  

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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top