#vb.net #refactoring #devexpress
#vb.net #рефакторинг #devexpress
Вопрос:
У меня есть следующая строка кода
Dim a As String = ""
и рефакторинг предлагает заменить ""
на String.Empty
Это своего рода реафакторинг, но почему? Поскольку я новичок в будущих моих объявлениях, должен ли я лучше использовать String.Empty
?
Ответ №1:
На самом деле это в основном вопрос предпочтений. Лично я нахожу строку.Empty более четко показывает намерения программиста (например, чтобы он случайно не поставил пустую строку вместо пробела)… вероятно, поэтому «Рефакторинг» предлагает это. Но в остальном это одно и то же. Делайте так, как считаете нужным.
Ответ №2:
Значение строки.Пустое поле — это строка нулевой длины, «».
В коде приложения это поле чаще всего используется в назначениях для инициализации строковой переменной пустой строкой. Чтобы проверить, является ли значение строки либо нулевым, либо строковым.Пустой, используйте метод IsNullOrEmpty .
Комментарии:
1. Как это отвечает на вопрос OP?
2. @SashaGoldshtein, я объяснил ему, что использую String . Пустой равен использованию «» и строки. Пустая воля присваивает переменной правильную инициализацию пустой строки.
Ответ №3:
Это в значительной степени вопрос личных предпочтений. Я предпочитаю использовать константы, когда это возможно, особенно если они уже предоставлены используемой мной платформой. Я бы не стал стараться изо всех сил, чтобы исключить любое использование «» в коде. (Тем более, что компилятор будет сворачивать все повторения строкового литерала и сохранять только одно из них для времени выполнения.)
Ответ №4:
«» потенциально создает новый объект String , в то время как String .Пустой относится к предопределенному (существующему) объекту. Это небольшая придирка, но это то, что делают инструменты рефейторинга: находят все виды проблем, включая мелкие придирки.
Ответ №5:
Я всегда делаю наоборот и устанавливаю строку в null
. На самом деле есть несколько ситуаций, когда вы хотите, чтобы с помощью «» вы имели в виду, что у вас есть построенная строка, но без содержимого. Обычно вы имеете в виду, что у вас есть строка, не созданная. Вот почему я предпочитаю null
конструкцию.