少有人走的路

勇哥的工业自动化技术网站

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));//但是定义时需要都要写上,参数调用时用两个


沿伸阅读:


C# 泛型编程之泛型类、泛型方法、泛型约束


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864