泛型类
创建泛型类时,还需要其他一些C#关键字。例如不能把null赋值给泛型类型 ,可以使用default关键字。
默认值
不能把null赋值给泛型类型,因为泛型类型可以被实例化为值类型,而null只能用于引用类型。为了解决这个问题,可以使用default
关键字,将null赋予引用类型,将0赋予值类型。
约束
where T:struct
类型参数必须是值类型。
where T:class
类型参数必须是引用类型。
where T:new()
必须要有无参数的构造函数。
where T1:T2
必须派生自这个类。
where T:Interface
必须实现接口。
where T1:T2
类型参数作为约束。
继承
泛型类可以继承自非泛型类。
泛型类可以继承自泛型类。
非泛型类可以继承自泛型类。
静态成员
CRE:泛型类的静态成员只能在一个具体化中共享。
(END)