2013-04-29 1 views
6

Beide der folgenden Variationen kompilieren und auf der Oberfläche scheinen sich auf die gleiche Weise zu verhalten. Abgesehen von Syntaxzucker gibt es noch andere Unterschiede?Sollen Ereignishandler mit ihrem Delegierten dekoriert werden?

someObject.SomeEvent += new SomeEventHandler(someObject_SomeEvent); 
someObject.SomeEvent += someObject_SomeEvent; 

Antwort

10

Die beiden sind genau gleich. Wenn Sie die zweite (kürzere) Form verwenden, fügt der Compiler nur den Delegattyp für Sie ein.

Es gibt keinen Grund, die Syntax zu verwenden, die explizit den Delegaten erstellt, außer Sie möchten, dass der Delegattyp innerhalb des Codes vorhanden ist (für Lesbarkeit usw.).

4

Die neue, kürzere Version des Erstellens eines Delegaten wurde mit dem vs2003-Compiler eingeführt, soweit ich mich erinnere. Es ist nur ein syntaktischer Zucker über die längere Version.