当我使用TimeSpan
类时,有一个Add()
扩展方法
public TimeSpan Add(TimeSpan ts) {
long result = _ticks + ts._ticks;
// Overflow if signs of operands was identical and result's
// sign was opposite.
// >> 63 gives the sign bit (either 64 1's or 64 0's).
if ((_ticks >> 63 == ts._ticks >> 63) && (_ticks >> 63 != result >> 63))
throw new OverflowException(Environment.GetResourceString("Overflow_TimeSpanTooLong"));
return new TimeSpan(result);
}
基本上,它与+
运算符相同。
public static TimeSpan operator +(TimeSpan t1, TimeSpan t2) {
return t1.Add(t2);
}
添加值并在发生溢出的情况下引发异常。
问题:
为什么.NET
提供此方法?不会
public static TimeSpan operator +(TimeSpan t1, TimeSpan t2)
足够了吗?例如int
也未提供Add
方法。