C#.Net строка без учета регистра
Почему C#.Net позволяет объявить строковый объект без учета регистра?
String sHello = "Hello";
string sHello = "Hello";
Как строчные, так и прописные буквы S в строке String являются приемлемыми, и это, кажется, единственный объект, который позволяет это.
Кто-нибудь может объяснить почему?
7 ответов
string
является ключевым словом языка в то время как System.String
это тип псевдонимов.
Оба компилируются в одно и то же, аналогично:
int
являетсяSystem.Int32
long
являетсяSystem.Int64
float
являетсяSystem.Single
double
являетсяSystem.Double
char
являетсяSystem.Char
byte
являетсяSystem.Byte
short
являетсяSystem.Int16
ushort
являетсяSystem.UInt16
uint
являетсяSystem.UInt32
ulong
являетсяSystem.UInt64
Я думаю, что в большинстве случаев речь идет о разборчивости кода - все основные типы системных значений имеют псевдонимы, я думаю, строчные string
может быть просто для последовательности.
В дополнение к другим ответам рекомендуется использовать ключевые слова, если они существуют.
Например, вы должны использовать строку, а не System.String.
"Строка" - это название класса. "строка" - это ключевое слово, которое отображает этот класс.
это так же, как
- Int32 => int
- Десятичный => десятичный
- Int64 => длинный
... и так далее...
"строка" является ключевым словом C#. это просто псевдоним для System.String - одного из классов.NET BCL.
"string" - это просто псевдоним C# для класса "String" в пространстве имен System.
Строка является псевдонимом для System.String. Это одно и то же.
По соглашению, однако, объекты типа (System.String) обычно называются псевдонимами - например,
string myString = "Hello";
в то время как операции над классом используют заглавную версию, например
String.IsNullOrEmpty(myStringVariable);
Я использую String, а не string, Int32 вместо int, так что моя подсветка синтаксиса обнаруживает строку как тип, а не как ключевое слово. Я хочу, чтобы ключевые слова выскакивали у меня.