我正在尝试在类中实现(C#)接口(interface)方法,返回派生类型而不是接口(interface)中定义的基本类型:
interface IFactory
{
BaseCar GetCar();
}
class MyFactory : IFactory
{
MyCar GetCar()
{
}
}
当然,在哪里:
class MyCar : BaseCar
{
}
但是,发生以下错误:
“MyFactory”未实现接口(interface)成员“IFactory.GetCar()”。 'MyFactory.BaseCar()'无法实现IFactory.GetCar()',因为它没有匹配的返回类型'BaseCar'。
谁能指出我为什么失败,以及解决该问题的最佳方法是什么?
最佳答案
使用泛型
interface IFactory<T> where T: BaseCar
{
T GetCar();
}
class MyFactory : IFactory<MyCar>
{
MyCar GetCar()
{
}
}
class MyCar : BaseCar
{
}