Maison > développement back-end > C++ > le corps du texte

Les mots-clés délégués et la notation lambda sont-ils fonctionnellement identiques en C# ?

Linda Hamilton
Libérer: 2024-11-04 01:32:03
original
923 Les gens l'ont consulté

Are delegate keywords and lambda notation functionally identical in C#?

Mot clé délégué vs notation Lambda

En C#, une question courante se pose concernant l'équivalence de deux expressions lambda :

<code class="csharp">delegate { x = 0; }

() = > { x = 0 }</code>
Copier après la connexion

Sont-ils fonctionnellement identiques une fois compilés ?

Réponse :
En bref, non. Ils sont syntaxiquement équivalents, mais diffèrent par le type de délégué résultant.

Approfondir :
Alors que le mot-clé délégué crée traditionnellement des délégués anonymes, l'utilisation d'un lambda avec le mot-clé délégué génère un délégué anonyme également. Cependant, l'attribution d'un lambda à un type Expression crée à la place un arbre d'expression, qui peut ensuite être compilé en un délégué anonyme.

Considérations avancées :
Le choix entre ces notations dépend de l'utilisation prévue :

  • Attribuer au type de délégué (par exemple, Func, Action) : utiliser des délégués anonymes pour la génération de code d'exécution.
  • Attribuer au type d'expression : utiliser des arborescences d'expression pour une exécution différée ou génération de code personnalisé.

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