Maison >développement back-end >C++ >Comment fonctionnent les fermetures et améliorent la réutilisabilité du code en C# ?
Maîtriser les fermetures C# pour une réutilisation améliorée du code
Les fermetures C# sont une technique de programmation puissante permettant l'encapsulation de variables et de fonctions dans des délégués ou des méthodes anonymes. Cela permet la création de segments de code hautement adaptables et réutilisables.
La mécanique des fermetures C#
Une fermeture est créée lorsqu'une méthode anonyme ou un délégué est défini dans une méthode conteneur. La méthode interne (la méthode anonyme ou délégué) conserve l'accès aux variables déclarées dans la portée de la méthode externe, même une fois l'exécution de la méthode externe terminée.
Exemple illustratif :
Considérez ce scénario :
<code class="language-csharp">public Person FindById(int id) { return this.Find(delegate(Person p) { return (p.Id == id); }); }</code>
Ici, FindById
prend un id
et renvoie un objet Person
. Le délégué anonyme transmis à la méthode Find
agit comme une expression lambda, vérifiant si le Person
de l'objet Id
correspond à l'entrée id
. Cela recherche efficacement une personne spécifique par pièce d'identité.
C# 6 et au-delà : fermetures simplifiées
C# 6 et les versions ultérieures rationalisent la création de fermetures à l'aide d'expressions lambda et de corps d'expression. L'exemple précédent peut être réécrit de manière concise comme :
<code class="language-csharp">public Person FindById(int id) { return this.Find(p => p.Id == id); }</code>
En résumé
Les fermetures C# sont des outils inestimables, améliorant la flexibilité et la réutilisabilité du code en encapsulant des variables et des fonctions dans des expressions lambda et des méthodes anonymes. Cela conduit à des applications plus efficaces et maintenables.
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!