Возможный дубликат:
Поддерживает ли С# поддержку ковариации типа типа?
Я не уверен, что я просто глуп...
Если у меня есть интерфейс:
public interface IMoop
{
object Moop();
}
Почему я не могу реализовать его так (я предполагаю, что это будет использовать неявное ковариательство?)
public class MoopImplementor : IMoop
{
string Moop();
}
Любой экземпляр MoopImplementor выполнит контракт, указанный IMoop, поэтому кажется, что это должно быть хорошо.
Пожалуйста, просветите меня:)
РЕДАКТИРОВАТЬ: быть понятным - поскольку класс реализации возвращает то, что наследуется от возвращаемого типа метода Interfaced - я считаю, что это должно работать. В частности, a string
IS a object
. (и то же самое относится к любой другой цепочке целостности).