多くの属性(サイズ、シート、色など)を持つVehicle
というクラスを作成する必要があります。また、Trunk
とCar
という独自の属性を持つ2つのクラスを作成する必要があります。抽象クラスとのインタフェース
だから私はそれを書いた:その後
// Vehicle.cs
abstract public class Vehicle
{
public string Key { get; set; }
...
}
// Car.cs
public class Car : Vehicle
{
...
}
// Trunk.cs
public class Trunk : Vehicle
{
...
}
を、私はインターフェイスを書いた:
// CarRepository.cs
public class CarRepository : IVehicleRepository
{
private static ConcurrentDictionary<string, Car> _cars =
new ConcurrentDictionary<string, Car>();
public CarRepository()
{
Add(new Car { seats = 5 });
}
public IEnumerable<Car> GetAll()
{
return _cars.Values;
}
// ... I implemented the other methods here
}
:
// IVehicleRepository.cs
public interface IVehicleRepository
{
void Add(Vehicle item);
IEnumerable<Vehicle> GetAll();
Vehicle Find(string key);
Vehicle Remove(string key);
void Update(Vehicle item);
}
だから私は、私はこのようなものを使用することができることを考えていましたしかし、私はエラーが発生しました:
エラーCS0738: 'CarRepository'は、インターフェイスメンバー 'IVehicleRepository.GetAll()'を実装していません。 'CarRepository.GetAll()'は、 'IEhumerable <' Vehicle> 'という一致する戻り値の型がないため、' IVehicleRepository.GetAll() 'を実装できません。
どうすればいいですか?
ありがとう、みんな(http://stackoverflow.com/users/6400526/gilad-greenとhttp://stackoverflow.com/users/5528593/ren%C3%A9-vogt)。これは私を助けましたが、別の問題があります。 私はリポジトリが1つだけの場合、Startup.csの "public void ConfigureServices(IServiceCollection services)"に注入できます。 services.AddSingleton(); しかし、私はCarRepositoryとTrunkRepository(IVehicleRepositoryを拡張)という2つのリポジトリを持っています。 CarRepositoryとTrunkRepositoryはどのように注入できますか? –
shibata
@Olavo Shibate - 助けてくれてうれしいです。特定の問題を解決するのに役立つ場合は、解決済みとしてマークすることを検討してください。もう1つの質問については、フォローアップの質問を別の質問に掲載するというポリシーがあります。人々が持っていた同様の問題を探してください。あなたはまだ新しい質問を投稿してください。私たちは喜んで助けてくれるでしょう –
ありがとうございます。 – shibata