Ответ 1
Потому что вы не снимите флажок "Предпочитайте встроенное предопределенное ключевое слово типа при объявлении локалей, параметров и членов" найденный в Инструменты > Параметры > Текстовый редактоp > С# > Стиль кода
В С# я обычно использую String
, когда я использую метод и String
при объявлении переменной. Я читал в другом месте, что это предпочтительный метод, чтобы держать вещи чистыми, и это имело смысл для меня. В Visual Studio 2015 я получаю новое сообщение, которое я не получил раньше, когда использую String
: Name can be simplified
. Предложение VS заключается в том, чтобы вместо этого использовать String
.
Почему String
теперь предпочтительнее String
в VS2015, тогда как это было не в 2013 году?
Не дублируем этот вопрос. Этот вопрос спрашивает, в чем разница в целом, я спрашиваю, почему VS теперь предлагает один за другим; Я не знаю, изменилась ли техническая разница или что-то в этом роде.
Потому что вы не снимите флажок "Предпочитайте встроенное предопределенное ключевое слово типа при объявлении локалей, параметров и членов" найденный в Инструменты > Параметры > Текстовый редактоp > С# > Стиль кода
Инструменты > Параметры > Текстовый редактоp > С# > Стиль кода снимите флажок " Предпочитает встроенное предопределенное ключевое слово типа в выражениях доступа к членству"
Пример, приведенный в VS2015 для этой опции, переворачивает
var local = int.MaxValue
(отмечено)
to
var local = Int32.MaxValue
(unticked)
И после этого вы, вероятно, захотите отключить его/настроить серьезность проверки на вашем ReSharper, который является ссылкой "Заменить встроенный тип с правилом типа CLR или ключевым словом".
Теперь ничто не намекает на меня, чтобы изменить String.Format()
на String.Format()
string - это псевдоним в С# для System.String. Так что технически, нет никакой разницы. Это похоже на int vs. System.Int32.
Что касается того, что вы должны делать, строка является предпочтительным объектом для переменных и String для классов, поскольку это практический выбор.
обычно рассматривается как
string example = "hello world";
string example = String.Format("Hello World {0}!", example);