Защищенное поле только для чтения и защищенное свойство

У меня есть абстрактный класс, и яЯ хотел бы инициализировать поле только для чтения в его защищенном конструкторе. Я'Мне бы хотелось, чтобы это поле только для чтения было доступно в производных классах.

Следуя своей привычке делать все поля приватными и выставлять свойства, я реализовал это следующим образом:

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;
    }
}

Ответы на вопрос(7)

Ваш ответ на вопрос