泛型&匿名
一、泛型
定义:泛型(Generic)泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。
允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。
您可以通过数据类型的替代参数编写类或方法的规范。当编译器遇到类的构造函数或方法的函数调用时,它会生成代码来处理指定的数据类型。
1 using System; 2 delegate T NumberChanger<T>(T n); 3 4 namespace test11._1 5 { 6 class Program 7 { 8 static int num = 10; 9 public static int AddNum(int p) 10 { 11 num += p; 12 return num; 13 } 14 15 public static int MultNum(int q) 16 { 17 num *= q; 18 return num; 19 } 20 21 public static int getNum() 22 { 23 return num; 24 } 25 public static void Main(string[] args) 26 { 27 NumberChanger<int> nc1 = new NumberChanger<int>(AddNum); 28 NumberChanger<int> nc2 = new NumberChanger<int>(MultNum); 29 30 nc1(25); 31 Console.WriteLine("Value of Num: {0}", getNum()); 32 nc2(5); 33 Console.WriteLine("Value of Num: {0}", getNum()); 34 35 Console.ReadKey(); 36 } 37 } 38 }
结果是:

二、func
定义:public delegate <T> Func<T>(T obj1,T obj2,........T obj16);
它可以传入最多16个T类型参数,返回T类型值;
实例代码:
1 static void Main(string[] args) 2 { 3 //注意最后一个string是返回类型 4 var Test3 = new Func<int, string, string,string>(func_Compare); 5 Console.WriteLine("我是"+Test3(1987, "90后", "非90后"));//输出我是非90后 6 Console.ReadKey(); 7 } 8 private static string func_Compare(int x, string a, string b) 9 { 10 string result = x > 1990 ? a : b; 11 return result; 12 }
                    
                
                
            
        
浙公网安备 33010602011771号