为什么 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
?
.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
?