web-dev-qa-db-fra.com

Que sont les «fermetures» en C #?

Dupliquer

fermetures en .NET

Que sont les fermetures en C #?

64
Shane Scott

Un fermeture en C # prend la forme d'un délégué en ligne/ méthode anonyme . Un fermeture est attaché à sa méthode parent, ce qui signifie que les variables définies dans le corps de la méthode parent peuvent être référencées à partir de la méthode anonyme. Il y a un grand Blog Post ici à ce sujet.

Exemple

public Person FindById(int id)
{
    return this.Find(delegate(Person p)
    {
        return (p.Id == id);
    });
}

Vous pouvez également consulter les blogs Martin Fowler ou Jon Skeet . Je suis sûr que vous pourrez obtenir une ventilation plus "approfondie" d'au moins l'un d'entre eux ...

94
cgreeno