Подтвердить что ты не робот

Строка vs string

В С# есть объекты String и String объекты.

В чем разница между этими двумя? Каковы наилучшие методы использования?

4b9b3361

Ответ 1

Нет никакой разницы. string (нижний регистр) - это просто псевдоним для System.String.

Ответ 2

Никакой разницы. System.String строго идентичен string. Общие правила кодирования С# указывают, что вы должны использовать ключевое слово string.

Ответ 3

Они являются псевдонимами и взаимозаменяемы. Однако, стилистически, для деклараций я использую строку с нижней строкой, а для статических методов я использую String.

string foo = "bar";

if( foo != String.Empty )
{
   Console.WriteLine(String.Format("foo.Length = {0}", foo.Length));
}

Ответ 5

Нет никакой разницы. string - это псевдоним, который компилятор преобразует в System.String.

Фактически, он даже псевдониму в MSIL:

.method private hidebysig static void  Main(string[] args) cil managed

Ответ 6

Между ними нет никакой разницы. string - это просто псевдоним для System.String. Когда они скомпилированы, они оба скомпилированы в объект System.String.

Ответ 7

Нижняя версия - это просто псевдоним для фактического класса String. Нет никакой реальной разницы в том, что IL генерировал.

Ответ 8

Нет никакой разницы. string - это ключевое слово языка С#, которое относится к классу System.String, точно так же, как int - это ключевое слово, которое относится к System.Int32.

Ответ 9

В будущем попробуйте компилировать приложение, которое использует оба, а затем использовать Reflector (изменить язык на IL), чтобы просмотреть скомпилированный вывод. Вы не увидите различий.

Ответ 10

Нет никакой разницы, потому что строка преобразуется в System.String компилятором. То же самое со всеми распространенными типами (int переходит в System.Int32 и т.д.). Мы используем простое имя, чтобы они выделялись.

Ответ 11

Учитывая, что "int" отличается на некоторых языках в зависимости от 16-битной/32-битной системы, "строка" в будущем может развиваться не так, как System.String.

Но на данный момент это.

Ответ 12

просто немного: string/String - не единственная пара псевдонимов: например. Integer, Int32, int - все псевдонимы.

@mliesen: это не происходит в С#, это не похоже на C. this, потому что из С# вы не создаете исполняемый, а компилируемый код, как java.