可能是重复问题:
C#是否支持返回类型协变?
我不确定我是不是只是傻了……
如果我有一个接口:
public interface IMoop
{
object Moop();
}
为什么我不能像这样实现它(我猜这会使用隐式协变?)
public class MoopImplementor : IMoop
{
string Moop();
}
任何 MoopImplementor 的实例都符合 IMoop 指定的契约,所以这似乎应该没问题。
请启发我 :)
编辑:为了明确 - 由于实现类返回的东西继承自接口方法的返回类型 - 我认为这应该可以工作。具体来说,一个 string
是一个 object
。(其他继承链也是如此)。
Moop()
返回一个object
,否则你就没有实现接口。这不是问题,因为你可以像你正确地指出的那样,简单地从方法中返回一个string
。 - Niklas B.