时间跨度结构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);
      }
    }

时间跨度结构0/1.0划分原因

正如评论中建议的那样,不要使用反射器。TimeSpanstruct而不是class

参考来源
public double TotalDays {
    get { return ((double)_ticks) * DaysPerTick; }
}

与Total Hours Reference Source

不同
public double TotalHours {
    get { return (double)_ticks * HoursPerTick; }
}