Рефакторинг: заменить постоянной строкой.Пустой

#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 конструкцию.