delegate void writer();
static void Main()
{
List
int i=0;
for(; i < 10; i++)
{
writers.Add(delegate { Console.WriteLine(i); });
}
foreach (var writer in writer){writer();}
}
delegate void writer();
static void Main()
{
List
int i=0;
for(; i < 10; i++)
{
writers.Add(delegate { Console.WriteLine(i); });
}
foreach (var writer in writer){writer();}
}
The answer is
10
10
10
10
10
10
10
10
10
10
It will print 10 in 10 times in loop. Beacuse delegate is refrence type.
NOTE : To compile this code we need to do some correction in code as below.
Replace - List writers = new List();
TO
List
and
Replace - foreach (var writer in writer)
TO
foreach (var writer in writers)
Exception thrown. The list is “writers”, and in loop it’s “writer”.