C # .Net строка без учета регистра

Почему C # .Net позволяет объявить строковый объект без учета регистра?

String sHello = "Hello";
string sHello = "Hello";

Допустимы как строчные, так и прописные буквы S строки, и это, кажется, единственный объект, который позволяет это.

Кто-нибудь может объяснить, почему?

13.08.2008 12:53:20
Смотрите этот вопрос для получения дополнительной информации.
Lasse V. Karlsen 13.08.2008 12:54:26
Во-первых, он не учитывает регистр. Вы не можете писать STRINGили strinGили что - нибудь еще. Во-вторых, это не единственный тип, имеющий псевдоним: objectэто псевдоним для Object; boolэто псевдоним для Boolean; doubleэто псевдоним для Double, и т.д. Кстати, voidэто также псевдоним для Void, но C # не позволяет вам использовать Void...
Timwi 8.08.2010 14:51:04
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может быть просто для согласованности.

21
13.09.2011 14:30:35

«Строка» - это название класса. "строка" - это ключевое слово, которое отображает этот класс.

это так же, как

  • Int32 => int
  • Десятичный => десятичный
  • Int64 => длинный

... и так далее...

2
13.08.2008 12:55:14

строка является псевдонимом для System.String. Это одно и то же.

По соглашению, однако, объекты типа (System.String) обычно называются псевдонимами - например,

string myString = "Hello";

в то время как операции над классом используют заглавную версию, например

String.IsNullOrEmpty(myStringVariable);
0
13.08.2008 12:56:39
Я не думаю, что условием является использование в верхнем регистре версии для операций. Я, конечно, не видел, что записано. Важно использовать версию BCL для открытых имен, например, ReadSingle вместо ReadFloat.
Jon Skeet 21.11.2008 13:38:12
говорит кто? никогда не слышал об этой конвенции!
BritishDeveloper 12.04.2010 21:42:42

"строка" является ключевым словом C #. это просто псевдоним для «System.String» - одного из классов .NET BCL.

1
13.08.2008 12:57:26

"string" - это просто псевдоним C # для класса "String" в пространстве имен System.

1
13.08.2008 12:58:46

В дополнение к другим ответам, рекомендуется использовать ключевые слова, если они существуют.

Например, вы должны использовать строку, а не System.String .

6
13.08.2008 13:50:08

Я использую String, а не string, Int32 вместо int, так что моя подсветка синтаксиса обнаруживает строку как тип, а не как ключевое слово. Я хочу, чтобы ключевые слова выскакивали у меня.

0
13.08.2008 18:59:36