Защищенное поле только для чтения и защищенное свойство
У меня есть абстрактный класс, и яЯ хотел бы инициализировать поле только для чтения в его защищенном конструкторе. Я'Мне бы хотелось, чтобы это поле только для чтения было доступно в производных классах.
Следуя своей привычке делать все поля приватными и выставлять свойства, я реализовал это следующим образом:
abstract class Foo
{
private readonly int _field;
protected Foo(int field)
{
_field = field;
}
protected int Field
{
get { return _field; }
}
}
Но потом я подумал: а есть ли здесь действительно большое преимущество в том, чтобы держать поле в секрете? Я'Я знаю о преимуществах свойств, и есть несколько вопросов SO по этому вопросу в целом, но они сосредоточены на открытых областях, а не на защищенных.
Так я должен перейти на реализацию ниже или нет? Какие соображения и преимущества / недостатки следует учитывать в любом случае?
abstract class Foo
{
protected readonly int _field;
protected Foo(int field)
{
_field = field;
}
}