转载自:
https://blog.csdn.net/lym940928/article/details/80039571
泛型
通过参数化类型来实现在同一份代码上操作多种数据类型。
利用“参数化类型”将类型抽象化,从而实现灵活的复用。
泛型类的定义
定义一个泛型类指的是,定义一个类,这个类中某些字段的类型是不确定的,这些类型可以在构造的时候确定下来。
eg:
//创建一个类处理int类型或double类型或其他类型的相加 class ClassA<T> //T为未知的类型(也就是一个数据类型),可能是int,也可能是double { //当使用ClassA进行构造时,需要指定T的类型 private T a; private T b; public ClassA(T a, T b) //构造函数 { this.a = a, this.b = b; } public string GetSum() { return a + " " + b; } } var o1 = new ClassA<int>(12,34); //当我们利用泛型类构造时,需要指定泛型的类型 string s1 = o1.GetSum(); var o2 = new ClassA<string>("WWW.","google.com") string s2 = o2.GetSum();
泛型方法
定义泛型方法即为定义一个方法,这种方法的参数类型可以是不确定的,可以当调用这个方法的时候再去确定方法的参数类型。
//实现了任意类型组拼成字符串的方法,可以是int,double,string等类型 public static string GetSum<T>(T a,T b){ return a + "" + b; } Console.WritrLine(GetSum(12,34)); //多种类型的定义 public static string GetSum2<T1, T2, T3>(T1 a, T2 b, T3 c) { return a + "" + b + "" + c;//定义了三种参数,三种都使用 } Console.WriteLine(GetSum<int,double,string>(2,2.1,"34")); public static string GetSum2<T1, T2, T3>(T1 a, T2 b) { return a + "" + b;//定义了三种参数,只用了两种 } Console.WriteLine(GetSum<int,double,string>(2,2.1));//但是定义时需要都要写上,参数调用时用两个
沿伸阅读:
本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:


