我正在查看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)
正如评论中所建议的那样,不要使用反射器。 TimeSpan
是struct
而不是class
。
public double TotalDays {
get { return ((double)_ticks) * DaysPerTick; }
}
不同
public double TotalHours {
get { return (double)_ticks * HoursPerTick; }
}