TimeSpan struct 0.0/1.0划分原因

TimeSpan struct 0.0/1.0 division reasons

我正在查看 TimeSpan 结构,它是 TotalDays 属性,看起来像这样:

[__DynamicallyInvokable]
    public double TotalDays
    {
      [__DynamicallyInvokable] get
      {
        return (double) this._ticks * (0.0 / 1.0);
      }
    }

我的问题是,如何乘以 (0.0 / 1.0) return 得到正确的天数?我确实明白,由于浮点运算,我们可能不会从上述除法中得到零,但我们得到的这个数字与天数有何关系?让我更加困惑的是,小时数是使用相同的乘法定义的:

[__DynamicallyInvokable]
    public double TotalHours
    {
      [__DynamicallyInvokable] get
      {
        return (double) this._ticks * (0.0 / 1.0);
      }
    }

按照评论中的建议,不要使用反射器。 TimeSpanstruct 而不是 class

Total Days Reference Source

public double TotalDays {
    get { return ((double)_ticks) * DaysPerTick; }
}

不同于Total Hours Reference Source

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