【菜鸟求解惑】关于委托的执行结果的困惑
本来写了一个测试例子,向测试下多播委托的执行顺序的,没想到在执行过程中出现了另一个问题,
先上代码,测试代码如下:
static void Main(string[] args) { Action funcTemp = null; int i =1; for (; i <= 20; i++) { funcTemp += delegate() { int temp = i; Console.WriteLine("--> " + temp.ToString()); }; Console.Write(i + "_");//在这里输出的i的值正常。 } Console.WriteLine("\n--> 按任意键继续......"); Console.ReadKey(); Console.WriteLine("--> Begin <--"); funcTemp();//在执行委托的时候出问题了。 Console.WriteLine("--> End <--"); Console.ReadKey(); }
for (; i <= 20; i++) {[color=#FF0000] int temp = i;[/color] funcTemp += delegate() { Console.WriteLine("--> " + temp.ToString()); }; Console.Write(i + "_");//在这里输出的i的值正常。 }
[解决办法]