我有这样的情况:
public abstract class BaseClass
{
public abstract string MyProp { get; }
}
现在,对于一些派生类,属性值是合成值,所以没有setter:
public class Derived1 : BaseClass
{
public override string MyProp { get { return "no backing store"; } }
}
这工作正常。但是,一些派生类需要更传统的后备存储。但是,无论我如何编写它,例如在自动属性上或使用显式后备存储,我都会收到错误消息:
public class Derived2 : BaseClass
{
public override string MyProp { get; private set;}
}
public class Derived3 : BaseClass
{
private string myProp;
public override string MyProp
{
get { return myProp;}
private set { myProp = value;}
}
}
Derived2.MyProp.set':无法覆盖,因为 'BaseClass.MyProp' 没有可覆盖的 set 访问器
我怎样才能让它工作?