Переопределение типа возвращаемого значения метода интерфейса производным классом в реализации

Я пытаюсь реализовать (C #) метод интерфейса в классе, возвращая производный тип вместо базового типа, как определено в интерфейсе:

interface IFactory
{
    BaseCar GetCar();
}

class MyFactory : IFactory
{
    MyCar GetCar()
    {
    }
}

Где, конечно:

class MyCar : BaseCar
{

}

Однако происходит следующая ошибка:

MyFactory не реализует член интерфейса IFactory.GetCar (). MyFactory.BaseCar () не может реализовать IFactory.GetCar (), потому что у него нет соответствующего возвращаемого типа BaseCar.

Может ли кто-нибудь указать мне, почему это не удается и как лучше всего обойти это?

19
задан iDPWF1 19 December 2011 в 16:49
поделиться