Бывает когда пишишь код и тебе требуется улучшить его читабельность, но не всегда ясно, правильно ли это или нет!
Так вот хочу узнать у Вас, нужно ли использовать рефакторинг при написание кода?!
Допустим такой код:
static string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
Студия рекомендует использовать рефакторинг, то есть инкапсулировать поле (и продолжить использовать свойства)
После рефакторинга:
public static string Desktop1
{
get
{
return Desktop;
}
set
{
Desktop = value;
}
}
Теперь он возвращает функцию для Desktop,нужно ли использовать такой подход?
Ок, вы меня уговорили, перечислять все в комментариях не удобно, поэтому пусть будет ответом, несмотря на "холиварность" вопроса, средней степени тяжести.
Все поля должны быть приватными.
Это требование ООП, поэтому даже не хочу обсуждать. Если требуется предоставить доступ к полю уровня protected, public или internal, то использование для этого свойств обязательно.
Когда нужны private свойства?
В общем случае private свойства абсолютно бесполезны, т.к. они не могут ограничить доступ к полю - уровень доступа у них одинаковый, ниже уже некуда. Исключение составляют автоматические свойства, но их возможность ограничения доступа к полю связана не с уровнем доступа, а тем фактом, что имена полей не известны программисту, да и компилятор их генерирует только в момент компиляции.
Но один случай полезного применения приватных свойств все же есть - это вычисляемые свойства за которыми нет конкретных полей или наоборот - совокупность зависимых полей. Другой вопрос, что для этих целей можно использовать обычные методы, но тут уже нужно смотреть на семантику использования и сложность кода аксессоров.
Более подробно про преимущества свойств, когда их применять нужно, а когда не нужно можно почитать в ответе @VladD - Для чего нужны свойства?
В приведенном вами примере, куда более ценно - явно указать модификатор private перед полем. Это избавит читающего ваш код от необходимости вспоминать/изучать уровень доступа по-умолчанию для членов класса.
Если вы используете это поле только внутри методов своего класса (а у вас оно приватное), то данная инкапсуляция не нужна.
Если вас интересует тема автоматического рефакторинга кода, то лучше взгянуть в сторону плагина для Visual Studio под названием Resharper. Он имеет бОльшую функциональность и благодаря нему новичку очень легко приучить себя писать хороший код.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости