14 Stimmen

Unterschied zwischen Verdrahtungsereignissen mit und ohne "neu"

Was ist in C# der Unterschied (wenn überhaupt) zwischen diesen beiden Codezeilen?

tmrMain.Elapsed += new ElapsedEventHandler(tmrMain_Tick);

y

tmrMain.Elapsed += tmrMain_Tick;

Beide scheinen genau gleich zu funktionieren. Nimmt C# einfach an, dass Sie das erste meinen, wenn Sie das zweite eingeben?

0 Stimmen

Nun, sie funktionieren beide gut. Warum wählt Visual Studio dann die erste Variante aus, wenn es den Ereignishandler-Stub automatisch erstellt?

0 Stimmen

Diese Funktion stammt aus der Zeit vor Visual Studio 2005, mit dem die kürzere Syntax eingeführt wurde.

-1voto

Rob Cooper Punkte 28132

Ich denke, der einzige Weg, um wirklich zu sagen, wäre ein Blick auf die MSIL für den Code produziert Das ist in der Regel ein guter Test

Ich habe komische Bedenken, dass es irgendwie mit GC Es scheint seltsam, dass es den ganzen Overhead der Deklaration des neuen Delegatentyps gibt, wenn es nie auf diese Weise gemacht werden muss, wissen Sie?

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