SIKI学习――C#中级教程_14泛型类的定义

匿名 (未验证) 提交于 2019-12-02 23:30:02

1.泛型类的定义

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

2.泛型类定义
定义一个泛型类就是指的是,定义一个类,这个类中某些字段的类型是不确定的,这些类型可以在类构造的时候确定下来,举例:
创建一个类处理int类型和double类型的相加
class ClassA< T >
{
private T a;
private T b;
public ClassA(T a,T b)
{
this.a = a ;
this.b = b;
}
public T GetSum()
{
return a+“”+b;
}
}
例子:

namespace 泛型和泛型类 {     class Program     {         static void Main(string[] args)         {             var o1 = new ClassA<int>(12,34);//当我们利用泛型类构造的时候,需要指定泛型的类型             string s = o1.GetSum();             Console.WriteLine(s);             Console.ReadKey();         }     } } 
namespace 泛型和泛型类 {     class Program     {         static void Main(string[] args)         {             var o2 = new ClassA<string>("wwww","xuexi.com");             Console.WriteLine(o2.GetSum());             Console.ReadKey();         }     } } 

2.泛型方法

定义泛型方法就是定义一个方法,这个方法的参数的类型可以是不确定的,当调用这个方法的时候再去确定方法的参数的类型。
实现任意类型组拼成字符串的方法
public static T GetSum< T >(T a,T b)
{
return a+""+b;
}
GetSum< int >(23,12);
GetSum< double >(23.2,12);

例子1:

namespace 泛型方法 {     class Program     {         public static string GetSum<T>(T a, T b)         {             return a + "" + b;         }         static void Main(string[] args)         {             Console.WriteLine(GetSum(12,34));             Console.WriteLine(GetSum(12.3,34.5));             Console.WriteLine(GetSum("xuexi","haonan"));             Console.ReadKey();         }     } } 

例子2:

namespace 泛型和泛型类 {     class ClassA<T,A>//(两个类型)T代表一个数据类型,当时用ClassA进行构造的时候,需要制定T的类型     {         private T a;         private T b;         private A c;         public ClassA(T a, T b)         {             this.a = a;             this.b = b;         }         public string GetSum()         {             return a +""+ b;         }     } } 
namespace 泛型和泛型类 {     class Program     {         static void Main(string[] args)         {             var o2 = new ClassA<string,int>("wwww","xuexi.com");//<string,int>后边的int是为我们定义的A指定类型             Console.WriteLine(o2.GetSum());             Console.ReadKey();         }     } } 

例子3:

namespace 泛型方法 {     class Program     {         public static string GetSum<T,T2,T3,T4>(T a, T b)         {             return a + "" + b;         }         static void Main(string[] args)         {             Console.WriteLine(GetSum<int,int,int,int>(12,34));             Console.WriteLine(GetSum<double,double,double,double>(12.3,34.5));             Console.WriteLine(GetSum<string,string,string,string>("xuexi","haonan"));             Console.ReadKey();         }     } } 
文章来源: https://blog.csdn.net/qq_42983775/article/details/89678216
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!