标签: c# .net generics
为什么在.Net中模仿泛型类是对泛型参数的不变操作? 接口和委托不是,但类是。
例如,我希望能够将Expression<Func<string>>类型的对象分配给Expression<Func<object>>。由于Func<T>中的T为“out”且Expression是不可变的,因此按照我的方式分配它是合理的,对吗?
Expression<Func<string>>
Expression<Func<object>>
Func<T>
Expression
答案 0 :(得分:-2)
如果类允许变体类型参数,您将无法在任何字段中使用它们,因为字段始终(至少有时)可写和可读。
这会限制效用,使其不值得。