Maison > développement back-end > C++ > Gestion des événements C# : quelle est la différence entre ` = anEvent` et ` = new EventHandler(anEvent)` ?

Gestion des événements C# : quelle est la différence entre ` = anEvent` et ` = new EventHandler(anEvent)` ?

Barbara Streisand
Libérer: 2025-01-08 07:26:39
original
249 Les gens l'ont consulté

C# Event Handling: What's the Difference Between ` = anEvent` and ` = new EventHandler(anEvent)`?

La différence entre = anEvent et = new EventHandler(anEvent) en C#

Les expressions Lambda en C# simplifient la syntaxe d'ajout de gestionnaires d'événements, conduisant à deux pratiques courantes :

1. = anEvent

  • Exemple : button1.Click = anEvent;
  • Ici, anEvent est un délégué qui fait référence à la méthode à exécuter lorsque l'événement se produit. Le compilateur déduit automatiquement le type de délégué correct en fonction de la signature de la méthode.

2. = new EventHandler(anEvent)

  • Exemple : button1.Click = new EventHandler(anEvent);
  • Cette syntaxe spécifie explicitement le type de délégué (EventHandler) avant d'attribuer le gestionnaire d'événements.

La différence entre les deux méthodes

La différence fondamentale réside dans le mécanisme d'inférence déléguée :

  • Dans la première méthode, le compilateur déduit le type de délégué et fournit du sucre de syntaxe concis.
  • Dans la deuxième méthode, le type de délégué est explicitement défini, ce qui est nécessaire dans les projets C# 1.0 car l'inférence de délégué n'a pas été introduite avant C# 2.0.

Résumé : Ils sont équivalents

Les deux méthodes peuvent obtenir la même fonctionnalité. La méthode que vous choisissez dépend de vos préférences personnelles. Pour les projets C# 2.0 et versions ultérieures, utilisez = anEvent pour rendre votre code plus propre et = new EventHandler(anEvent) pour définir explicitement les types de délégués.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal