我有一个 A 类,其中包含 B 类的对象作为属性。我想派生类 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 类,因为它们正在其他地方使用。