最近我尝试通过实现通用接口来创建泛型子类。为什么我需要在通用子类中重新声明类型约束
public interface IModule<T> where T : DataBean { ..... }
public class Module<T> : IModule<T> where T : DataBean { .... }
看来我不能依赖于任何T的限制,是在基本接口定义, ,我需要重新申报他们自己。
MSDN只是提供:
当使用子类泛型类型 参数,则必须重复任何 限制在规定的子类级别基本 一流水平。对于 示例,推导约束
为什么不能从基类/接口推断约束?
约束不需要复制,也可以选择使用可转换为父类的约束类型的东西,使得子类更加专业化。 – 2011-01-08 17:33:31