.NET DateTime没有预定义的大小

S. *_*ont 6 .net size datetime struct sizeof

由于DateTime是一个结构,其成员似乎分解为简单的数学值,我不确定为什么在它上面使用sizeof()会在问题标题中生成消息.

Yah*_*hia 7

因为CLR只能在运行时确定大小...其中一个原因是"填充"(取决于平台)......

对于所有其他类型(包括结构),sizeof运算符只能用于不安全的代码块.虽然您可以使用Marshal.SizeOf方法,但此方法返回的值并不总是与sizeof返回的值相同.Marshal.SizeOf在封送类型后返回大小,而sizeof返回公共语言运行库分配的大小,包括任何填充.

参考.

另请参阅如何检查结构消耗的字节数?