プロパティとしてクラス B のオブジェクトを含むクラス A があります。クラス B を派生させ、クラス A のプロパティが派生クラス オブジェクトを指していることを確認したいと考えています。そのためには、そのプロパティをオーバーロードするクラス A を派生させる必要があると思います。したがって、構造は次のとおりです。
public class A {
public List<B> X{get; set;}
}
public class B {
}
public class C : B {
string extraProperty {get; set;}
}
public class D : A {
// I want property X to be of type C.
}
クラス A でプロパティ X を仮想として宣言してから、クラス D で X のオーバーライドを使用しようとしましたが、エラーが発生しD:X must be of type B to match overriden member A:X
ます。C# はプロパティのオーバーロードをサポートしていないことを読みました。どうすればこれを行うことができますか?
編集: クラス A と B は別の場所で使用されているため、変更できません。