泛型&匿名

一、泛型

定义:泛型(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         }

 

posted @ 2022-11-30 16:28  末叶da  阅读(24)  评论(0)    收藏  举报