C#泛型

81 阅读1分钟

泛型类定义

广泛类型的类

class ClassA<T> //Type int string double
{
    private T a;
    private T b;
    public ClassA(T a, T b)
    {
        this.a = a;
        this.b = b;
    }
    public T GetSum()
    {
        dynamic num1 = a; //dynamic 动态类型(可以是任意类型)
        dynamic num2 = b;
        dynamic result = num1 + num2;
        return (T)result; //强制转换为类型 T 
    }
}

泛型类使用

//要指定类型
ClassA<int> a = new ClassA<int>(45, 65); //a为110
ClassA<double> b = new ClassA<double>(2.1, 3.1); //b为5.2

泛型方法

public static T GetSum<T>(T a, T b)
{
    dynamic num1 = a;
    dynamic num2 = b;
    return (T)(num2 + num1);
}

泛型方法使用

GetSum<int>(20, 30) //结果为50

其它方法

//Equals    判断两个参数是否相等,会自动比对类型
bool flag = Equals(arg1, arg2)
//或者    arg1.Equals(arg2)
//判断字符串时会比较两个字符串的值,而不是引用,
//判断实例对象也会判断其值 但是等号会判断引用类型