时间跨度结构0/1.0划分原因
本文关键字:划分 结构 时间跨度 | 更新日期: 2023-09-27 18:15:45
我正在看TimeSpan
结构和它的TotalDays
属性,看起来像这样:
[__DynamicallyInvokable]
public double TotalDays
{
[__DynamicallyInvokable] get
{
return (double) this._ticks * (0.0 / 1.0);
}
}
我的问题是,这个乘法乘以(0.0/1.0)如何返回正确的天数?我明白,由于浮点运算,我们可能不会从前面提到的除法中得到零,但是我们如何将这个数字与天数联系起来呢?更让我困惑的是,小时数是用同样的乘法定义的:
[__DynamicallyInvokable]
public double TotalHours
{
[__DynamicallyInvokable] get
{
return (double) this._ticks * (0.0 / 1.0);
}
}
正如评论中建议的那样,不要使用反射器。TimeSpan
是struct
而不是class
。
public double TotalDays {
get { return ((double)_ticks) * DaysPerTick; }
}
与Total Hours Reference Source
不同public double TotalHours {
get { return (double)_ticks * HoursPerTick; }
}