我正在嘗試爲某些計算添加一些TimeSpans。
如:檢查添加TimeSpans是否超過TimeSpan.MaxValue
var timeSpan1 = new TimeSpan.FromMinutes(1);
var timeSpan2 = new TimeSpan.MaxValue;
var timeSpan3 = timeSpan1 + timeSpan2;
在這種情況下,它會超過TimeSpan.MaxValue並拋出一個異常
System.OverflowException:時間跨度溢出,因爲持續時間過長。
什麼是添加TimeSpans的正確方法?
我是否必須嘗試一下,或者編寫自己的擴展方法?看起來像這應該是.Net框架的一部分 - 或者默認爲MaxValue或者有一個TryAdd方法。
你爲什麼認爲拋出異常不是正確的行爲?考慮到如果'timeSpan3'產生'TimeSpan.MaxValue',你會打破數學規則,例如'timeSpan3 - timeSpan1!= timeSpan2'。 –
@MattJohnson好點!但是,我的MaxValue用例是「無窮大」。所以'無限+無限=無限'。在這種情況下,我也不應該使用'無窮大 - 時間跨度= ...'並依靠結果。 – JumpingJezza