Добавление сеттера к виртуальному свойству в C #

У меня такая ситуация:

public abstract class BaseClass 
{
   public abstract string MyProp { get; }
}

Теперь для некоторых производных классов значение свойств является синтезированным значения, поэтому нет сеттера:

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 'не имеет переопределяемого набора аксессуар

Как мне заставить это работать ??

9
задан James Curran 11 November 2010 в 05:21
поделиться