C#泛型类和泛型方法

泛型可以理解为广泛的类型,或者不确定的类型,也就是说允许我们编写一个可以与任何数据类型同时运行,且不报错的方法或者类。

泛型类

泛型类是指这个类的某些字段的类型是不确定的,只有在构造的时候才能确定下的类。

泛型类示例

class Program
    {
        static void Main(string[] args)
        {
            MyClass<int>  mc=new MyClass<int>(12,34);
        }
    }
    class  MyClass<T>
    {
        private T a;
        private T b;
        public MyClass(T a,T b)
        {
            this.a = a;
            this.b = b;
        }        
    }

在构造的时候,声明这个类中的字段为int类型,并转递对应的参数。

泛型方法

泛型方法与泛型类类似,方法的返回类型和参数类型都可以使用泛型。如下:

public static T GetT<T>(T a)
{
    return a;
}

泛型方法的示例

public static Type GetT<T>(T a)
{
    return a.GetType();
}
static void Main(string[] args)
{
   Console.WriteLine(GetT(1));
   Console.WriteLine(GetT(0.4435f));
   Console.WriteLine(GetT("sssss"));
}

结果为:

System.Int32
System.Single
System.String

上述方法为查看数据类型的Type的方法,用来检验,传输类型是否正确。


注意

泛型类和泛型方法都是我们在构造或者调用的时候声明类型,如果要是我实际遇到的问题中有两种同时存在的不确定的类型呢?
答案:可以同时声明两种泛型在同一个类或者方法中
我们对上面的泛型类的泛型方法进行改造,结果如下:
泛型类:

class  MyClass<T,A>//两个泛型,数据类型可以不同了
{
    private T a;
    private A b;
    public MyClass(T a,A b)
    {
        this.a = a;
        this.b = b;
    }        
}

泛型方法:

public static String GetT<T,A>(T a,A b)
{
    return a + "" + b;
}

注意:泛型不一定用大写的字母T来表示,其它的也可以,但是T被广泛应用,也推荐大家使用T。
欢迎评价和指正, 谢谢。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值