泛型是什么?
通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。
泛型类定义
定义一个泛型类就是指的是,定义一个类,这个类中某些字段的类型是不确定的,这些类型可以在类构造的时候确定下来,
举例:
class ClassA<T> {//T代表一个数据类型,当使用classA进行构造的时候,需要制定T的类型
private T a;
private T b;
private A c;
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 s = o1.GetSum();
Console.WriteLine(s);
泛型方法
定义泛型方法就是定义一个方法,这个方法的参数的类型可以是不确定的,当调用这个方法的时候再去确定方法的参数的类型。
实现任意类型组拼成字符串的方法
class Program {
public static string GetSum<T>(T a, T b)
{
return a + "" + b;
}
static void Main(string[] args) {
Console.WriteLine(GetSum<int>(12,34));
Console.ReadKey();
}
}
多类型的泛型类
class ClassA<T,A> {//T代表一个数据类型,当使用classA进行构造的时候,需要制定T和A的类型
private T a;
private A c;
public ClassA(T a, A b )
{
this.a = a;
this.b = b;
}
public string GetSum()
{
return a +""+ b;
}
}
调用
class Program {
static void Main(string[] args) {
var o2 = new ClassA<string,int>("wwww.",33);
Console.WriteLine(o2.GetSum());
Console.ReadKey();
}
}
多类型的泛型方法
class Program {
public static string GetSum<T,T2,T3,T4>(T a, T b)
{
return a + "" + b;
}
static void Main(string[] args) {
Console.WriteLine(GetSum<int,int,int,int>(12,34));
Console.WriteLine(GetSum<double,double,double,double>(12.3,34.5));
Console.WriteLine(GetSum<string,string,string,string>("23r,","wer3l2kj"));
Console.ReadKey();
}
}