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 :
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!