@kos_dev

Что лучше использовать в реальных проектах Свойства или Protected переменные и методы к ним?

Здравствуйте, подскажите, что и когда лучше использовать и в чем я не прав:
Свойства ( полагаю, что их следует использовать, если требуется получить значение поля вне класса )
или же
Protected поле ( видимо оно используется тогда, когда не требуется получить значение поля вне класса) и, если нам все-таки нужно его значение то методы к этому полю, пример ниже

class A
    {
        protected int v1; // protected

        public void setV1(int val)
        {
            if (val < 0) v1 = -1;
            else v1 = val;
        }
        public int getV1() { return v1; }


        private int _v2;
        public int v2 // prop
        {
            get
            {
                return _v2;
            }
            set
            {
                if (value < 0)
                    _v2 = -1;
                else _v2 = value;
            }
        }
    }
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
делаю странные вещи..чаще на C#.. иногда за деньги
мода на геттер/сеттер просто так, вроде как отходит.

самая фишка геттера и сеттера, что в них, как по триггеру, можно делать попутные действия. чаще всего валидаци или логгирование, но могут быть и более хитроумные завязки

вопрос защищенности поля, совершенно самостоятельный. надо отдельно изучать когда и зачем скрывать поля от других классов (private) или сборок (protectet)

стоит учесть что к сокрытию кода это вообще не имеет отношения. зато более чем важно для создания потокобезопасных классов/методов
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Vladev
Свойства. Пример с протектед - говнокод из C++, где свойств нет.

Если поле является protected, то подразумевается что его напрямую можно менять из всех классов, которые находятся в этом пространстве имен.
Если хочешь чтобы поле напрямую менялось отовсюду, то это публичная переменная.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Emsoft Москва
от 110 000 до 180 000 ₽
Tennisi Москва
от 170 000 ₽
НПК Катрен Новосибирск
от 70 000 ₽
21 февр. 2020, в 11:08
1000 руб./за проект
21 февр. 2020, в 10:39
1000 руб./в час
21 февр. 2020, в 10:26
3000 руб./за проект