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 может быть просто для согласованности.

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

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

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

string myString = "Hello";

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

String.IsNullOrEmpty(myStringVariable);

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

это то же самое, что и

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

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

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

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

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

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