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