本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正
1.泛型约束了什么
在C#中,泛型约束用于限制泛型类型参数的类型
可以在泛型类型或方法的声明中使用 where
关键字来指定这些约束
2.约束栗子
基类约束:
public class Repository<T> where T : Entity {// T 必须是 Entity 的子类 }
接口约束:
public class Logger<T> where T : ILogger {// T 必须实现 ILogger 接口 }
构造函数约束
public class Factory<T> where T : new() {public T CreateInstance(){return new T();} }
多约束
public class Manager<T> where T : Employee, IManager, new() {// T 必须是 Employee 的子类,必须实现 IManager 接口,并且必须有一个无参数的构造函数 }
方法约束
public void Process<T>(T item) where T : IProcessable {item.Process(); }