DateTime表示C#中的位数

joj*_*ojo 4 c# memory datetime

Int,Float,Double,Decimal,DateTime .etc是值类型.而且我知道:

Int:Represents a 32-bit signed integer.
Float:Represents a single-precision floating-point number(32-bit).
Double:Represents a double-precision floating-point number(64-bit).
...
Run Code Online (Sandbox Code Playgroud)

但DateTime有多少位?为什么.NET中的所有值类型都是struct?

Mat*_*iee 11

基于此处,DateTime在C#中表示64位:

在.NET Framework 2.0版之前,DateTime结构包含一个64位字段,该字段由未使用的2位字段和一个私有Ticks字段组成,该字段是一个62位无符号字段,其中包含代表该字段的刻度数.日期和时间.可以使用Ticks属性获取Ticks字段的值.

从.NET Framework 2.0开始,DateTime结构包含一个64位字段,该字段由与Ticks字段连接的私有Kind字段组成.Kind字段是一个2比特字段,指示DateTime结构是表示本地时间,协调世界时(UTC)还是未指定时区中的时间.在执行时区之间的时间转换时使用Kind字段,但不用于时间比较或算术.可以使用Kind属性获取Kind字段的值.

  • 这个答案有用吗? (2认同)