繁体   English   中英

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

[英]C#.Net case-insensitive string

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

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

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

谁能解释为什么?

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

两者都编译为完全相同的东西,类似地:

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

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

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

例如,您应该使用string而不是System.String

“字符串”是类的名称。 “字符串”是映射此类的关键字。

就像一样

  • Int32 =>整数
  • 小数=>小数
  • Int64 =>长

... 等等...

“字符串”是C#关键字。 它只是.NET BCL类之一“ System.String”的别名。

“字符串”只是系统命名空间中类“字符串”的C#别名。

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

string是System.String的别名。 他们是一样的东西。

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

string myString = "Hello";

而对类的操作使用大写版本,例如

String.IsNullOrEmpty(myStringVariable);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM