C#泛型约束

27 阅读1分钟

概念

对泛型中传入的类型校验,规定其必须满足的条件

举例

public class AGenericClass<T> where T : class{}//class 指T必须是引用类型

实例化

AGenericClass<string> a = new AGenericClass<string>();

分类

class:泛型T必须是引用类型

struct: 泛型T必须是值类型

new(): 泛型必须包含无参构造方法,与其他约束共用时放在最后

类名:泛型必须是某类或者是派生自某类,与接口共用则放在接口的前方