I tried the following example:
public class TestBase
{
    public virtual string ReadOnly { get; }
    public TestBase()
    {
        ReadOnly = "from base";
    }
}
class Test : TestBase
{
    public override string ReadOnly { get; }
    public Test()
    {
        // nothing here
    }
}
When I create an instance of Test, I see that ReadOnly stays null. But why? I really do not get the hang of it, could somebody please explain to me why this happens? At least I would expect an error, that a read-only property cannot be set outside of the owning class.
 
     
    