您不能将强制
Generic<Derived>转换为
Generic<base>。
试想一下,如果可以。您有一个
List<Wolf>并将其转换为
List<Animal>。现在,你可以
.Add()一个
Sheep你
List<Animal>。但请稍候…现在您的中
List<Wolf>包含一个
Sheep。真是一团糟。
仅当您可以确保投射到的东西以所有可能的形式为只读时,这才可行。这就是协和,而协方差就是这样。但是,它仅适用于接口。
欢迎分享,转载请注明来源:内存溢出
您不能将强制
Generic<Derived>转换为
Generic<base>。
试想一下,如果可以。您有一个
List<Wolf>并将其转换为
List<Animal>。现在,你可以
.Add()一个
Sheep你
List<Animal>。但请稍候…现在您的中
List<Wolf>包含一个
Sheep。真是一团糟。
仅当您可以确保投射到的东西以所有可能的形式为只读时,这才可行。这就是协和,而协方差就是这样。但是,它仅适用于接口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)