Ich habe immer Ereignishandler wie diese zugewiesen, die von Intellisense Auto-Vervollständigung geleitet werden.
%Vor%Ich habe kürzlich bemerkt, dass einer meiner Kollegen es so macht.
%Vor%Beide Methoden sind syntaktisch korrekt, kompilieren und verhalten sich wie erwartet.
Was sind die Unterschiede, Vorteile oder Nachteile dieser Methoden? Führen sie zu demselben IL-Code oder gibt es einen feinen Unterschied, auf den ich achten muss?
Was sind die Unterschiede, Vorteile oder Nachteile dieser Methoden?
Die zweite Methode ist neuer, d. h. sie wird nur seit C # 2.0 (glaube ich) unterstützt, wodurch eine automatische Konvertierung von einer Methodengruppe (d. h. ein Methodenname) zu einem Delegaten hinzugefügt wurde. Der Aufruf des Konstruktors wird somit vom Compiler hinzugefügt und die zweite Methode ist nur syntaktischer Zucker für den ersten.
Aus diesem Grund gibt es keine anderen Unterschiede zwischen den beiden.
Da die zweite Methode dasselbe tut wie die erste, sollte sie mit weniger Syntax bevorzugt werden.
Das Ergebnis ist in beiden Fällen dasselbe. Aber im letzteren Fall wird der C # -Compiler den EventHandler-Typ aus dem Code ableiten, wodurch Sie ein paar Schlüsselstriche sparen.
Ja, der Compiler erzeugt in beiden Fällen den gleichen IL-Code, der zweite Fall ist nur die Syntax Zucker
Tags und Links c# events event-handling