2015-10-03 18 views
0

我一直在尋找在TimeSpan結構和它的TotalDays財產,看起來像這樣:時間跨度結構0.0/1.0分工的原因

[__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); 
     } 
    } 
+4

不要看反射器。使用參考源。您將看到不同的代碼 –

+4

http://referencesource.microsoft.com/#mscorlib/system/timespan.cs,d0bc7009a734d3ee –

回答

1

正如意見建議,不要使用反射器。 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; } 
}