Просто реализуйте абстрактный метод с помощью частного установщика в вашем производном классе:
class Derived : Base
{
protected override string test { get; } = "MyInitialValue";
}
or before C#6 with a readonly backing-field:
class Derived : Base
{
private readonly string _test = "MyInitialValue";
protected override test { get { return this._test; } }
}
Это позволяет вам устанавливать разные значения для разных классов. Если вам это не нужно и все классы должны иметь одинаковое значение, вы можете определить его в своем базовом классе, сделав его неабстрактным.
Вы также можете использовать частный сеттер в своем производном классе. Это делает его доступным только для других классов, но вы также можете установить значение внутри вашего класса вне конструктора.