В C# есть String
объекты и string
объекты.String vs string
В чем разница между этими двумя? Каковы наилучшие методы использования?
В C# есть String
объекты и string
объекты.String vs string
В чем разница между этими двумя? Каковы наилучшие методы использования?
Нет никакой разницы. string (нижний регистр) - это просто псевдоним для System.String.
Нет никакой разницы. string - это псевдоним, который компилятор преобразует в System.String.
На самом деле, это даже псевдонимами в MSIL:
.method private hidebysig static void Main(string[] args) cil managed
Там нет никакой разницы между ними. string - это просто псевдоним для System.String. Когда они скомпилированы, они оба скомпилированы в объект System.String.
Версия в нижнем регистре - это просто псевдоним для фактического класса String. Нет никакой реальной разницы, поскольку IL генерируется.
Это псевдонимы и являются взаимозаменяемыми. Однако, стилистически, для деклараций я использую строку с нижней строкой, а для статических методов я использую String.
string foo = "bar";
if(foo != String.Empty)
{
Console.WriteLine(String.Format("foo.Length = {0}", foo.Length));
}
Нет никакой разницы, поскольку строка преобразуется в System.String компилятором. То же самое со всеми распространенными типами (int переходит в System.Int32 и т. Д.). Мы используем простое имя, чтобы они выделялись.
Нет разницы. System.String
строго идентичен string
. Общие правила кодирования C# указывают, что вы должны использовать ключевое слово string
.
Первый - это System.String .Net Type, а другой - для C#, который является псевдонимом для System.String.
http://msdn.microsoft.com/en-us/library/362314fe(VS.71).aspx
Там нет никакой разницы. string - это ключевое слово языка C#, которое относится к классу System.String, точно так же, как int - это ключевое слово, которое относится к System.Int32.
В будущем попробуйте выполнить компиляцию приложения, которое использует оба, а затем использовать Reflector (изменить язык на IL), чтобы просмотреть скомпилированный вывод. Вы увидите, что нет никакой разницы.
Учитывая, что на некоторых языках «int» различается в зависимости от 16-битной/32-битной системы, «строка» в будущем может развиваться не так, как System.String.
Но пока это так.
всего лишь небольшая заметка: строка/строка не единственная пара псевдонимов: например. Integer, Int32, int - все псевдонимы.
@mliesen: в C# этого не происходит, это не похоже на C. это потому, что из C# вы не создаете исполняемый файл, а компилируемый код, как java.
Вы также можете найти это [вопрос и ответ] (http://stackoverflow.com/questions/7074/in-c-what-is-the-difference-between-string-and-string). – 2008-09-22 18:29:59