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