好吧,这可能是个愚蠢的问题,但我找不到任何相关信息。
String.Empty 和 string.Empty 一样吗?我总是发现自己倾向于使用大写版本 (String.Empty),因为与小写版本 (string.Empty) 相比,我更喜欢它在 IDE 中的颜色和外观...
是否有一种“正确”的方式来使用这些不同的方法,或者完全取决于个人喜好?我曾假设它们是相同的,但老实说,直到今天出于某种原因我想知道“如果它们都存在,它们一定都存在是有原因的”,我才考虑过这个问题。
是否有任何人知道的原因?如果是这样,它是什么?谁能赐教一下?
附言“完全重复”只回答了问题的一半 - “哪个是正确的?”,而不是“为什么它们都存在?”
完全重复:What is the difference between String and string in C#?
完全重复:String vs string in C#
在 C# 中,小写类型名称是 System.xxx
类型名称的别名,例如string
等于 System.String
而 int
等于 System.Int32
。
为了保持一致性,最好使用这些语言别名作为类型名称,而不是它们的框架等效项。所以你做错了。 ;-)
至于它们都存在的原因,.NET 类型存在是因为它们是在称为 CTS(通用类型系统)的 .NET 库的独立于语言的标准中定义的。为什么 C# 定义这些别名超出了我的范围(VB 做的事情非常相似)。我想这两个原因是
- 习惯。通过为一些基本类型提供相同的类型名称,让所有这些 C 和 Java 程序员使用 C#。
- 惰性:您不必导入
System
命名空间即可使用它们。
编辑 由于许多人似乎更喜欢其他表示法,所以我要指出这绝不是不合理的。使用 CTS 类型名称而不是 C# 的关键字实际上是一个很好的例子,其他答案中提供了一些表面上很好的论据。从纯度/风格的角度来看,我可能会同意。
但是,请考虑这是否值得打破有助于跨项目统一代码的既定惯例。