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

时间:2008-08-13 12:53:21

标签: c# .net

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

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

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

任何人都可以解释原因吗?

7 个答案:

答案 0 :(得分:21)

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可能只是为了保持一致。

答案 1 :(得分:6)

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

E.g。你应该使用 string 而不是 System.String

答案 2 :(得分:2)

“String”是类的名称。 “string”是映射此类的关键字。

一样
  • Int32 => INT
  • 十进制=>小数
  • Int64 =>长

......等等......

答案 3 :(得分:1)

“string”是C#关键字。它只是“System.String”的别名 - 一个.NET BCL类。

答案 4 :(得分:1)

“string”只是System-namespace中“String”类的C#别名。

答案 5 :(得分:0)

string是System.String的别名。他们是一回事。

按照惯例,类型(System.String)的对象通常被称为别名 - 例如。

string myString = "Hello";

而类上的操作使用大写版本 e.g。

String.IsNullOrEmpty(myStringVariable);

答案 6 :(得分:0)

我使用String而不是字符串, Int32而不是int, 这样我的语法高亮显示选择字符串作为Type而不是关键字。我想让关键词跳出来。