C # .Net строка без учета регистра - PullRequest
7 голосов
/ 13 августа 2008

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

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

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

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

Ответы [ 7 ]

21 голосов
/ 13 августа 2008

string - ключевое слово языка, а System.String - псевдоним типа.

Оба компилируются в одно и то же, аналогично:

  • int является System.Int32
  • long является System.Int64
  • float is System.Single
  • double is System.Double
  • char is System.Char
  • byte is System.Byte
  • short is System.Int16
  • ushort is System.UInt16
  • uint is System.UInt32
  • ulong is System.UInt64

Я думаю, что в большинстве случаев речь идет о разборчивости кода - все основные типы системных значений имеют псевдонимы. Думаю, строчные буквы string могут быть просто для согласованности.

6 голосов
/ 13 августа 2008

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

например. Вы должны использовать string вместо System.String .

2 голосов
/ 13 августа 2008

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

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

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

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

1 голос
/ 13 августа 2008

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

1 голос
/ 13 августа 2008

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

0 голосов
/ 13 августа 2008

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

0 голосов
/ 13 августа 2008

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

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

string myString = "Hello";

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

String.IsNullOrEmpty(myStringVariable);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...