Почему "строка" считается упрощенной версией "String"?

В С# я обычно использую String, когда я использую метод и String при объявлении переменной. Я читал в другом месте, что это предпочтительный метод, чтобы держать вещи чистыми, и это имело смысл для меня. В Visual Studio 2015 я получаю новое сообщение, которое я не получил раньше, когда использую String: Name can be simplified. Предложение VS заключается в том, чтобы вместо этого использовать String.

Почему String теперь предпочтительнее String в VS2015, тогда как это было не в 2013 году?

Не дублируем этот вопрос. Этот вопрос спрашивает, в чем разница в целом, я спрашиваю, почему VS теперь предлагает один за другим; Я не знаю, изменилась ли техническая разница или что-то в этом роде.

Ответ 1

Потому что вы не снимите флажок "Предпочитайте встроенное предопределенное ключевое слово типа при объявлении локалей, параметров и членов" найденный в Инструменты > Параметры > Текстовый редактоp > С# > Стиль кода

Ответ 2

Инструменты > Параметры > Текстовый редактоp > С# > Стиль кода снимите флажок " Предпочитает встроенное предопределенное ключевое слово типа в выражениях доступа к членству"

Пример, приведенный в VS2015 для этой опции, переворачивает

var local = int.MaxValue (отмечено)

to

var local = Int32.MaxValue (unticked)

И после этого вы, вероятно, захотите отключить его/настроить серьезность проверки на вашем ReSharper, который является ссылкой "Заменить встроенный тип с правилом типа CLR или ключевым словом".

Теперь ничто не намекает на меня, чтобы изменить String.Format() на String.Format()

Ответ 3

string - это псевдоним в С# для System.String. Так что технически, нет никакой разницы. Это похоже на int vs. System.Int32.

Что касается того, что вы должны делать, строка является предпочтительным объектом для переменных и String для классов, поскольку это практический выбор.

обычно рассматривается как

string example = "hello world";

string example = String.Format("Hello World {0}!", example);