5.5.6 共享和非共享的变量混合使用
MethodInvoker[] delegates = new MethodInvoker[2]; int outside = 0; for(int i=0;i<2;i++) { int inside = 0; delegates[i] = delegate { Console.WriteLine("【outside:{0},inside:{1}】", outside, inside); outside++; inside++; }; } MethodInvoker first=delegates[0]; MethodInvoker second = delegates[1]; first(); first(); first(); second(); second();
输出结果为:
【outside:0,inside:0】
【outside:1,inside:1】
【outside:2,inside:2】
【outside:3,inside:0】
【outside:4,inside:1】