Sto imparando C# .Can intendo chiusura come a construct that can adopt the changes in the environment in which it is defined.
C# -Chiusura -Clarification
Esempio:
List<Person> gurus =
new List<Person>()
{
new Person{id=1,Name="Jon Skeet"},
new Person{id=2,Name="Marc Gravell"},
new Person{id=3,Name="Lasse"}
};
void FindPersonByID(int id)
{
gurus.FindAll(delegate(Person x) { return x.id == id; });
}
La variabile id
è dichiarata nel campo di applicazione del FindPersonByID(), ma t siamo ancora in grado di accedere la variabile locale nella funzione anonima (ad esempio) delegate(Person x) { return x.id == id; }
(1) La mia comprensione della chiusura è corretta?
(2) Quali sono i vantaggi che possiamo ottenere dalle chiusure?
Grande spiegazione Mr jaredpar – user274364