C#中泛型类的定义

版权声明:仅供参考与学习交流 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));//但是定义时需要都要写上,参数调用时用两个
阅读更多

没有更多推荐了,返回首页