C#==> 泛型类的几点特性
1,需要为泛型类定义约束
为泛型类定义约束的作用,实际上就是指定泛型类型应该符合某种规范
使用where关键字定义
如下
public class MyClass<TMyTemp>
where TMyTemp : IMyInface
{
... ...
}
包含where关键字的约束,
代表泛型TMyTemp必须要实现对接口IMyInface
这里的TMyTemp就是泛型 以T开头可以算是一种命名约定。
where关键还有以下集中
where Txxx : struct //约束 类型 Txxx必须是值类型
where Txxx : class //约束 类型 Txxx必须是引用类型
where Txxx : new() //约束 类型 Txxx必须有一个默认的构造函数
2,泛型继承
有如下几种继承方式
A ,
public class Base<T> { }
public class Child<T> : Base<T> { }
B,
public class Base<T> { }
public class Child<T> : Base<string> { }
C,
public class Base<T> { }
public class Child: Base<int> { }
3, 泛型类中的静态成员
泛型类的静态成员比较特殊,编译器会为每一个指定了类型的泛型类定义一个共享,
比如
类Base有一个静态成员 i
public class Base<T>
{
public static int i;
}
Base<string> b1 = new Base<string>();
Base<float> b2 = new Base<float>();
Base<string>,Base<float>分别都将有一个自己静态成员
浙公网安备 33010602011771号