В чем разница между этими двумя объявлениями?В чем разница между «строкой» и «строкой»?
string str;
String str;
В чем разница между этими двумя объявлениями?В чем разница между «строкой» и «строкой»?
string str;
String str;
При нормальном использовании string
и String
идентичны; string
- просто псевдоним для global::System.String
. Там являются некоторые краевые случаи, хотя:
using System;
использовать String
- вы не string
class String {}
, то String
относится к , что (это конечно, было бы глупостью). Вы не можно определить класс под названием string
(хотя @string
штраф)+1 для краев – Kawa
+1 для получения :-) –
+1 для упоминания вещей, о которых я не знал: P –
Нет никакой разницы. string (нижний регистр) - это просто псевдоним для System.String.
Да, но 'string' всегда * является псевдонимом для' System.String', тогда как 'String' просто следует правилам поиска нормального типа. Если, например, у вас есть * другой класс, называемый 'String' в текущей области,' String' будет ссылаться на * это *, а не на 'System.String'. –
String - это псевдоним для объекта System.String, поэтому нет.
System.String - это тип типа Common Type, необходимый для взаимодействия с другими языками .NET. «string» - это просто C# ярлык для этого имени (таким же образом int является ярлыком для System.Int32)
string - ключевое слово C#. String - это тип System.String .NET.
Компилятор C#, предоставляемый MS, сопоставляет ключевое слово string с типом System.String .NET, поэтому они эквивалентны.
Ничего действительно, в C# ключевые слова типа являются синонимами для типов. Итак int = System.Int32 short = System.Int16 и string = System.String.
Они одинаковы, без разницы, строка - это просто псевдоним для типа System.String, в C# есть другие подобные случаи, такие как int и System.Int32, long и System.Int64 (см. Другой родственный question)
Любопытно, что, хотя вы можете использовать псевдоним в своем коде вместо полных типов, вам все равно нужно знать базовый тип, если вы используете класс Convert, потому что нет методов ToInt или ToLong, но только ToInt32 и ToInt64.
Не так любопытно, как это звучит: 'Convert' - это класс рамки, а не ключевое слово языка. Если у него были методы, названные в честь ключевых слов C#, методы не имели бы смысла в VB или F # или других языках .NET. –
возможно дубликат [String против строки в C#] (http://stackoverflow.com/questions/215255/string-vs-string -in-c) –