浅谈C#泛型类与泛型方法

前言:本博文从C#泛型入手,依次介绍泛型类和泛型方法,如果读者想对泛型有更多的了解,可访问本人另一篇博文:C#中List泛型用法,必知必会!

一、泛型是什么?

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

泛型通过参数化类型来实现在同一份代码上操作多种数据类型。利用“参数化类型”将类型抽象化,从而实现灵活的复用。

二、泛型类的定义

定义一个泛型类就是指的是:定义一个类,这个类中某些字段的类型是不确定的,这些类型可以在类构造的时候确定下来,举例:

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;
}

通过上面这个例子,可以看出,泛型方法与泛型类类似,方法的返回类型和参数类型都可以使用泛型。下来,就通过一个案例,感受一下:

internal class Program
{
    public static Type GetT<T>(T a)
    {
        return a.GetType();
    }

    public static void Main(string[] args)
    {
        Console.WriteLine(GetT(10));
        Console.WriteLine(GetT(0.23f));
        Console.WriteLine(GetT("Hello"));
    }
}

在这里插入图片描述
上述方法为查看数据类型的Type的方法,用来检验,传输类型是否正确。

注意:我们也可以同时声明多种泛型在同一个类或者方法中。在调用时,我们传入相应的值就可以了(可以传多,不能传少)。

猜你喜欢

转载自blog.csdn.net/qq_44034384/article/details/106675894