使用泛型协方差表示返回类型

时间:2016-02-05 18:20:55

标签: c# generics interface covariance

所以我有这样的界面 -

public interface IBlah
{
    Generic<IBlah> GetBlah();
}

我希望能够在GetBlah()的实现中返回IBlah的实现。像这样的东西 -

public class Blah : IBlah
{
    public Generic<IBlah> GetBlah()
    {
        return new Generic<Blah>();
    }
}

我认为这在理论上是有道理的 - 因为Blah实现了IBlah,我们应该能够返回Generic&lt; Blah&gt;代替Generic&lt; IBlah&gt;,没有?

但是当我尝试它时,编译器给了我&#34;不能隐式转换类型&#34;错误。我尝试过铸造,但我得到了#34;无法转换类型&#34;。

是什么给出了?

0 个答案:

没有答案