我有一个抽象类,它定义了一个get,但没有定义set,因为就该抽象类而言,它仅需要一个get。
public abstract BaseClass
{
public abstract double MyPop
{get;}
}
但是,在某些派生类中,我需要一个set属性,因此我正在研究此实现。
public class DClass: BaseClass
{
public override double MyPop
{get;set;}
}
问题是,我收到一个编译错误,说
* .set:无法覆盖,因为*。没有可覆盖的set访问器。
即使我认为上述语法完全合法。
有什么想法吗?解决方法,或者为什么会这样?
编辑:我能想到的唯一方法是将get和都放在set抽象类中,然后让子类引发NotImplementedExceptionifset调用,这是不必要的。我不喜欢这种东西,还有一种特殊的设置方法。
double值,该值将在每个类中专门实现。有时需要设置此值,因此其中一些类应提供设置此值的方法。这是正确的吗?您需要使用多少级继承?