C#: Différence entre "+ = anEvent' et ' += new EventHandler(anEvent)'
Prendre le code ci-dessous:
private void anEvent(object sender, EventArgs e) {
//some code
}
Quelle est la différence entre la suivante ?
[object].[event] += anEvent;
//and
[object].[event] += new EventHandler(anEvent);
[Mise à JOUR]
Apparemment, il n'y a pas de différence entre les deux...le premier est juste sucre syntaxique de ce dernier.
- Un outil comme Resharper va vous conseillons de retirer le superflu code depuis qu'il ajoute du bruit.
- double possible de C# gestionnaires d'Événements
- La première ligne ne peut être comprise que par l'expérience du C#, programmeurs. La deuxième ligne peut être comprise par les deux expérimenté C#, programmeurs et ceux qui sont nouveaux à la langue.
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de différence. Dans ton premier exemple, le compilateur va automatiquement déduire le délégué vous souhaitez instancier. Dans le deuxième exemple, vous définissez explicitement le délégué.
Délégué de l'inférence a été ajouté en C# 2.0. Ainsi, pour le C# 1.0 projets, second exemple est votre seule option. Pour les projets 2.0, le premier exemple d'utilisation de l'inférence est ce que je préfère à utiliser et à voir dans la base de code - car il est plus concis.
est juste sucre syntaxique pour -
Je ne pense pas qu'il y a une différence. Le compilateur transforme la première en la seconde.