为什么日期时间不是预定义的类型
本文关键字:预定义 类型 日期 时间 为什么 | 更新日期: 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
?