Maison > développement back-end > C++ > Notation Lambda et mot-clé de délégué : peuvent-ils être utilisés de manière interchangeable ?

Notation Lambda et mot-clé de délégué : peuvent-ils être utilisés de manière interchangeable ?

Mary-Kate Olsen
Libérer: 2024-10-31 01:51:29
original
792 Les gens l'ont consulté

  Lambda Notation vs. Delegate Keyword: Can They Be Used Interchangeably?

Mots clés délégués et notation Lambda : sont-ils interchangeables ?

Les langages de programmation modernes offrent souvent plusieurs façons d'exprimer le même calcul. En C#, la notation lambda et le mot-clé délégué sont deux options populaires. Cette discussion explore leur équivalence et leurs nuances.

notation lambda :

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

mot-clé délégué :

<code class="csharp">delegate { x = 0; }</code>
Copier après la connexion

Sont-ils vraiment équivalents ?

En termes de comportement qui en résulte, la réponse est un non catégorique. Les deux notations aboutissent à un délégué anonyme qui attribue 0 à une variable x.

Différences subtiles (sans rapport avec votre question) :

Cependant, il est important de noter que si vous attribuez un lambda à un type de délégué (par exemple, Func ou Action), vous obtenez un délégué anonyme. En revanche, si vous l'attribuez à un type Expression, vous obtenez à la place une arborescence d'expression, qui peut être compilée en un délégué anonyme. Les arbres d'expression ne s'exécutent pas directement comme le font les délégués anonymes.

Ressources supplémentaires sur les expressions :

  • System.Linq.Expression.Expression(TDelegate)
  • Lien vers LINQ en mémoire à l'aide de délégués
  • ScottGu explique la différence entre LINQ en mémoire et Entity Framework

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