要使用协方差/逆变,我需要在接口或委托中使用泛型。 我认为它必须对语言设计问题做一些事情。
例如,这显示我没有问题,但给了我编译错误:没有合格的方法可以覆盖(基本上)。
class Human
{
public virtual void f(String i) { } // I want Contravariance
public virtual Object f2() { } // I want Covaraicne
}
class Mike : Human
{
public override void f(Object o) { } // Fail.
public override String f2() { } // Fail
}
我认为如果我们也可以这样做会很酷,但遗憾的是,在编译器中初始化它有一些隐藏的问题。
我正在谷歌搜索可以给我很好答案的文章,所以任何链接也会受到赞赏。
提前致谢。