C# -- 泛型
目录
Generic ==> 泛型 ==> 泛型类,泛型方法
示例:泛型类
public class GenericHelper<T> where T : IComparable //类型参数的约束 让T一定有 CompareTo 方法 ==>也就是继承了IComparable接口的类
{
}
泛型方法 :
public T CompareTo<T>(T target1, T target2) where T : IComparable //类型参数的约束 让T一定有 CompareTo 方法 使得函数不报错
{
if (target1.CompareTo(target2) > 0)
{
return target1;
}
return target2;
}
重点 : T 就是 类型参数
泛型种类
根据类型参数是否提供实参,将泛型分为 未绑定泛型 和 已构造泛型;
未绑定泛型:没有为 类型参数 T 提供实际类型;
已构造泛型: 已经指定了 参数类型 T 的实际类型;
已构造泛型 又可以细分为 开放类型 和 密封类型
开放类型 : 包含类型参数的泛型
密封类型 : 已经为每一个类型参数都传递了实际数据类型的泛型
示例:判断是密封类型还是开放类型
值得注意的是 ContainsGenericParameters 直白翻译就是 存在泛型参数
泛型中的静态字段和静态方法