Здравствуйте.
Дан сл. код:
public abstract class Foo
{
protected readonly int Field;
protected Foo()
{
Field = 5;
}
}
public abstract class Bar:Foo
{
protected Bar():base()
{
Field = 5; //ошибка!!!
}
}
Код выше не компилируется по причине того, что Field readonly. Я понимаю, что конструктор это такой спец.
метод для создания объектов, соотв. readonly поля возможно менять(по сути давать значения) только
в этих спец. методах. Но почему бы не разрешить это также делать и наследникам, т.е. ограниченному числу
других спец. методов? Чем это плохо, что я упускаю из виду?