C #: Différence entre ‘+ = anEvent’ et ‘+ = new EventHandler (anEvent)’

Prenez le code ci-dessous:

private void anEvent(object sender, EventArgs e) { //some code } 

Quelle est la différence entre les éléments suivants?

 [object].[event] += anEvent; //and [object].[event] += new EventHandler(anEvent); 

[METTRE À JOUR]

Apparemment, il n’y a pas de différence entre les deux … le premier est le sucre syntaxique de ce dernier.

Il n’y a pas de différence. Dans votre premier exemple, le compilateur déduira automatiquement le délégué que vous souhaitez instancier. Dans le deuxième exemple, vous définissez explicitement le délégué.

L’inférence des delegates a été ajoutée dans C # 2.0. Donc, pour les projets C # 1.0, le deuxième exemple était votre seule option. Pour les projets 2.0, le premier exemple utilisant l’inférence est ce que je préférerais utiliser et voir dans la base de code – car elle est plus concise.

 [object].[event] += anEvent; 

est juste du sucre syntaxique pour –

 [object].[event] += new EventHandler(anEvent); 

Je ne pense pas qu’il y ait une différence. Le compilateur transforme le premier dans le second.