Maison  >  Article  >  développement back-end  >  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
Mary-Kate Olsenoriginal
2024-10-31 01:51:29707parcourir

  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>

mot-clé délégué :

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

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!

Déclaration:
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