为什么日期时间不是预定义的类型

本文关键字:预定义 类型 日期 时间 为什么 | 更新日期: 2023-09-27 18:36:19

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

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

为什么日期时间不是预定义的类型

为什么要这样做?它不是一个基本类型,它是各种基本类型的struct

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

由于该类型是在 CLR 之上构建的,因此它可以从 CLR 带来的抽象中受益。

具有别名的类型(如 System.Int32 -> int )如您所见,在系统命名空间中也是"预定义的"。按照这种逻辑,DateTime 是预定义的,只是没有别名。

因为它

不在语言规范中:

4.1 值类型

[...]C# 提供了一组称为简单类型的预定义结构类型。简单类型通过保留字标识。

  • 简单类型
    • 数字类型
    • 布尔
  • 数字类型
    • 整体型
    • 浮点型
    • 十进制

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