admin

为什么存在小写和大写版本的字符串,我应该使用哪个?

sql

    • 好吧,这可能是一个愚蠢的问题,但我找不到任何相关信息。
  • String.Empty 和 string.Empty 是一样的吗?我总是发现自己倾向于使用大写版本 (String.Empty),因为与小写版本 (string.Empty) 相比,我更喜欢它在 IDE 中的颜色和外观……

  • 是否有一种“正确”的方式来使用这些不同的东西,还是完全取决于个人喜好?我假设它们是相同的,但老实说,直到今天出于某种原因我想知道“如果它们都存在,它们都必须存在一定的原因”之前,我从来没有考虑过。

  • 是否有一个原因,任何人都知道?如果是,那是什么?任何人都可以启发我吗?

  • PS“完全重复”只能回答问题的一半——“哪个是对的?”,而不是“为什么它们都存在?”


阅读 196

收藏
2021-07-01

共1个答案

admin

在 C# 中,小写类型名称是类型名称的别名System.xxx,例如stringequalsSystem.Stringintequals System.Int32

为了保持一致性,最佳实践是将这些语言别名用于类型名称而不是它们的框架等效项。所以你做错了。;-)

至于它们都存在的原因,.NET 类型之所以存在,是因为它们是在称为 CTS(通用类型系统)的 .NET 库的独立语言标准中定义的。为什么 C# 定义这些别名超出了我的理解(VB 做了一些非常相似的事情)。我想这两个原因是

  1. Habit。通过为一些基本类型提供相同的类型名称,让所有这些 C 和 Java 程序员使用 C#。
  2. Laziness您不必导入System命名空间即可使用它们。

编辑由于许多人似乎更喜欢其他符号,让我指出这绝不是不合理的。实际上可以为使用 CTS 类型名称而不是 C# 的关键字制作一个很好的案例,并且其他答案中提供了一些表面上很好的论据。从纯度/风格的角度来看,我可能会同意。

但是,请考虑这是否值得打破有助于跨项目统一代码的完善约定。

2021-07-01