zhouqijie

泛型类

创建泛型类时,还需要其他一些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)