class Program { static void Main(string[] args) { MethodInvoker m = CreateInvoker(); m(); m(); Console.ReadKey(); } static MethodInvoker CreateInvoker() { int count = 5; MethodInvoker ret = delegate { Console.WriteLine(count); count++; }; ret(); return ret; } }
5.5.5 局部变量实例化
使用多个委托来捕捉多个变量实例
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 List<MethodInvoker> list = new List<MethodInvoker>(); 6 for (int i = 0; i < 5; i++) 7 { 8 int a = i * 10; 9 list.Add(()=> 10 { 11 Console.WriteLine(a); 12 a++; 13 }); 14 } 15 16 Console.WriteLine("list======================"); 17 foreach (var item in list) 18 { 19 item(); 20 } 21 22 Console.WriteLine("list[0]======================"); 23 list[0](); 24 list[0](); 25 list[0](); 26 27 Console.WriteLine("list[1]======================"); 28 list[1](); 29 30 Console.ReadKey(); 31 32 /* 33 list====================== 34 0 35 10 36 20 37 30 38 40 39 list[0]====================== 40 1 41 2 42 3 43 list[1]====================== 44 11 45 */ 46 } 47 }
原文地址:https://www.cnblogs.com/kikyoqiang/p/10012920.html
时间: 2024-11-08 05:09:10