为什么 DateTime 不是预定义类型?

Why the DateTime is not a predefined type?

.NET Framework 中的 System 命名空间包含许多 C# 未预定义的重要类型,例如DateTime.

能否请您解释一下,为什么 DateTime 不是预定义类型?

为什么要这样做?这不是 basic type, it is a struct of various basic types.

仅包括支持 CLR 所需的最低限度的类型,仅此而已。没有必要在CLR级别声明很多类型,这只会使它变得更加复杂,并使在各种平台上维护CLR变得非常困难。

由于类型建立在 CLR 之上,它可以受益于 CLR 带来的抽象。

如您所见,types that have aliases(如 System.Int32 -> int)也在系统命名空间中 "predefined"。按照这个逻辑, DateTime 是预定义的,它只是没有别名。

因为它不在语言规范中:

4.1 Value types

[...] C# provides a set of predefined struct types called the simple types. The simple types are identified through reserved words.

  • simple-type:
    • numeric-type
    • bool
  • numeric-type:
    • integral-type
    • floating-point-type
    • decimal

至于 "why",您需要语言的设计者之一。为什么你会期望它?为什么 DateTime,而不是 Point