C#.Net不区分大小写的字符串

Gat*_*ler 7 .net c#

为什么C#.Net允许字符串对象的声明不区分大小写?

String sHello = "Hello";
string sHello = "Hello";
Run Code Online (Sandbox Code Playgroud)

单词String的小写和大写S都是可接受的,这似乎是允许这个的唯一对象.

有谁能解释为什么?

Kei*_*ith 21

string是一个语言关键字,而System.String它是别名的类型.

两者编译成完全相同的东西,类似:

  • intSystem.Int32
  • longSystem.Int64
  • floatSystem.Single
  • doubleSystem.Double
  • charSystem.Char
  • byteSystem.Byte
  • shortSystem.Int16
  • ushortSystem.UInt16
  • uintSystem.UInt32
  • ulongSystem.UInt64

我认为在大多数情况下这是关于代码易读性的 - 所有基本系统值类型都有别名,我认为小写string可能只是为了保持一致性.


Iai*_*der 6

除了其他答案之外,如果存在关键字,最好使用关键字.

例如,您应该使用字符串而不是System.String.