C#.Net不区分大小写的字符串
为什么C#.Net允许字符串对象的声明不区分大小写?
String sHello = "Hello"; string sHello = "Hello";
单词String的小写S和大写S都是可接受的,这似乎是允许这个的唯一对象。
有人可以解释为什么吗
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 。
“String”是类的名称。 “string”是映射此类的关键字。
它是一样的
- Int32 => int
- 十进制=>十进制
- Int64 =>长
… 等等…
“string”是一个C#关键字。 它只是“System.String”的别名 – 一个.NET BCL类。
“string”只是System-namespace中“String”类的C#别名。
string是System.String的别名。 他们是一样的东西。
但是,按照惯例,类型(System.String)的对象通常被称为别名 – 例如
string myString = "Hello";
而类上的操作使用大写版本,例如
String.IsNullOrEmpty(myStringVariable);
我使用String而不是字符串,Int32而不是int,因此我的语法突出显示将字符串作为Type而不是关键字。 我想要关键字跳出来。