第一章:错过泛型协变,等于放弃代码扩展性?
在现代编程语言中,泛型协变(Covariance)是提升类型系统灵活性的关键机制。它允许子类型关系在复杂类型中得以保留,从而让开发者编写更通用、可复用的代码。若忽视这一特性,往往会导致接口僵化,难以适应业务演进。
什么是泛型协变
泛型协变指的是:如果类型
B 是类型
A 的子类型,那么对于泛型容器
Container<B> 也应被视为
Container<A> 的子类型。这种关系仅在只读场景下安全成立。
例如,在 C# 中,通过
out 关键字声明协变:
public interface IProducer
{
T Produce();
}
IProducer stringProducer = () => "hello";
IProducer