Substituir a propriedade abstrata readonly para a propriedade de leitura / gravação

Eu gostaria de forçar apenas a implementação de um getter C # em uma determinada propriedade de uma classe abstrata de base. As classes derivadas podem, se quiserem, também fornecer um setter para essa propriedade para uso público do tipo ligado estaticamente.

Dada a seguinte classe abstrata:

public abstract class Base
{
    public abstract int Property { get; }
}

Se eu quiser uma classe derivada que também implemente um setter, eu poderia ingenuamente tentar:

public class Derived : Base
{
    public override int Property
    {
        get { return field; }
        set { field = value; } // Error : Nothing to override.
    } 

    private int field;
}

Mas então eu recebo um erro de sintaxe desde que eu tente substituir o setter não existente. Eu tentei de alguma outra forma, como declarar o setter de base privado e tal e eu ainda tropeçar em todos os tipos de erros que me impedem de fazer isso. Deve haver uma maneira de fazer isso, pois não quebra nenhum contrato de classe base.

Incidentalmente, isso pode ser feito com interfaces, mas eu realmente preciso dessa implementação padrão.

Eu tropecei nessa situação com tanta freqüência, eu queria saber se havia um truque de sintaxe C # oculto para fazer isso, senão eu vou apenas viver com ele e implementar um método manual SetProperty ().

questionAnswers(4)

yourAnswerToTheQuestion