C#中的泛型
C#中的泛型与Java中的类似,都是具有重复使用性、类型安全和高效率的特点(想到当初写Java时写了好几个不同类型的同名函数的痛~~)
一、泛型类型
顾名思义,包括类(class)、结构(structure)、接口(interface)以及方法(method)。
例如创建一个类:
class Student<T>{}
使用泛型时,必须要指定要创建参数的数据类型:
Student<String> Lilei = new Student<string>();
二、泛型方法
泛型方法指的是在定义方法时将类型参数指定为泛型参数,通俗讲就是把方法上的数据类型改成泛型(就是T,T指的就是泛型参数,广义上能够代表所有的数据类型)
private void Method<T>(T[] arr)
{
泛型方法体。。。
}
方法中还能进行条件的约束,与命名空间中的System.Collections.Generic的IComparer接口有关,来实现比较两个对象的方法。(其实就类似于java中的CompareTo接口)
private static T CheckData<T>(T one ,T two,T three) where T:IComparable<T>
{
T max = one;
if (two.CompareTo(max) > 0)
{
max = two;
}
if (three.CompareTo(max) > 0)
max = three;
return max;
}