Duplicata
Que sont les fermetures en C# ?
A fermeture en C# prend la forme d'un délégué en ligne/ méthode anonyme . A fermeture est attachée à sa méthode parentale, ce qui signifie que les variables définies dans le corps de la méthode parentale peuvent être référencées à l'intérieur de la méthode anonyme. Il existe un excellent Article de blog à ce sujet.
Exemple :
public Person FindById(int id)
{
return this.Find(delegate(Person p)
{
return (p.Id == id);
});
}
Vous pouvez également consulter Martin Fowler o Jon Skeet blogs. Je suis sûr que vous pourrez obtenir une analyse plus approfondie de la part d'au moins l'un d'entre eux....
Exemple pour C# 6 :
public Person FindById(int id)
{
return this.Find(p => p.Id == id);
}
ce qui équivaut à
public Person FindById(int id) => this.Find(p => p.Id == id);
@NickBull merci beaucoup. maintenant que c'est 2 ans plus tard, je cherche en fait la dernière et meilleure version, autour de 8.3 ?
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Duplicata : stackoverflow.com/questions/428617/closures-in-net
4 votes
Peut-être en double, mais la réponse acceptée est particulièrement succincte.
1 votes
Existe-t-il des exemples pratiques d'utilisation des fermetures ?
2 votes
Après avoir lu " Une fermeture est une fonction qui capture les liaisons des variables libres dans son contexte lexical "et n'a compris que le mot ' fonction dans la phrase, j'ai été très heureux de trouver Article de Justin Etheredge que l'auteur mérite un prix pour avoir expliqué cela avec une formulation simple et amusante.