Ancora non capisco cosa sia una chiusura così ho postato questi due esempi e voglio sapere se questi esempi sono entrambi chiusi o no?Questi esempi sono le chiusure C#?
Esempio A:
List<DirectoryInfo> subFolders = new List<DirectoryInfo>();
Action<string> FilterSubFoldersStartA =
s => subFolders.
AddRange((new DirectoryInfo(s)).GetDirectories().
Where(d => d.Name.StartsWith("A")));
FilterSubFoldersStartA(@"c:\tempa");
FilterSubFoldersStartA(@"c:\tempb");
Esempio B:
List<DirectoryInfo> subFolders = new List<DirectoryInfo>();
string filter = "A";
Action<string> FilterSubFoldersStartGen =
s => subFolders.
AddRange((new DirectoryInfo(s)).GetDirectories().
Where(d => d.Name.StartsWith(filter)));
FilterSubFoldersStartGen(@"c:\tempa");
filter = "B";
FilterSubFoldersStartGen(@"c:\tempb");
Il primo esempio si chiude su 'sottocartelle' quindi è anche una chiusura. –
Oh, giusto, non ho nemmeno notato il primo lambda. Ho appena visto 'd => ...' uno. Hai ragione. Il primo si chiude su 'subFolders', e nel secondo caso, il secondo lambda si chiude su' filter'. – jalf