Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

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

string foo = "bar";

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

Один из них — System.String типа .Net, а другой — специфичный для C#, который оказывается псевдонимом System.String.

http://msdn.microsoft.com/en-us/library/362314fe(VS.71).aspx

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

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

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

Между ними нет никакой разницы.строка — это просто псевдоним для System.String.При компиляции они оба компилируются в объект System.String.

Версия в нижнем регистре — это просто псевдоним реального класса String.Реальной разницы в том, как генерируется IL, нет.

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

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

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

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

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

небольшое замечание:string/String — не единственная пара псевдонимов:например.Integer, Int32, int — все это псевдонимы.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top