在下面的示例中,为什么 Milliseconds属性返回 0,而 TotalMilliseconds属性返回 5000?
Milliseconds
0
TotalMilliseconds
5000
// 5 seconds TimeSpan intervalTimespan = new TimeSpan(0, 0, 5); // returns 0 intervalTimespan.Milliseconds; // returns 5000.0 intervalTimespan.TotalMilliseconds
因为 Milliseconds返回毫秒部分,TotalMilliseconds 返回由 Timespan表示的总毫秒
Timespan
例子: 0:00:05.047
毫秒47
总毫秒: 5047
简单:
Miliseconds只返回 TimeSpan的毫秒部分,而 TotalMilliseconds计算 TimeSpan表示的时间是多少毫秒。
Miliseconds
TimeSpan
在您的示例中,首先返回 0,因为您只有5秒钟的时间; 第二次返回 5000,因为5s = = 5000ms
这是因为 intervalTimespan.Milliseconds返回时间跨度的毫秒分量。 在时间跨度构造函数中,只有小时、分钟和秒组件,这就是为什么结果为0。
intervalTimespan.Milliseconds
intervalTimespan.TotalMilliseconds得到时间跨度的总毫秒。
intervalTimespan.TotalMilliseconds
例如:
// 5 milliseconds TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5); // returns 5 intervalTimespan.Milliseconds; // returns 5 intervalTimespan.TotalMilliseconds
TimeSpan还有其他超载:
TimeSpan(hour, minute, seconds) TimeSpan(days, hour, minute, seconds) TimeSpan(days, hour, minute, seconds, milliseconds)
Milliseconds属性返回实际的毫秒值。
TotalMilliseconds属性返回包括天、小时、分钟和秒在内的总毫秒。
还有一件重要的事情没有提到,那就是(根据文件) :
Milliseconds属性表示整个毫秒,而 TotalMilliseconds属性表示 整体和分数毫秒。
这也可从 TotalMilliseconds的评论中扣除:
此属性将此实例的值从刻度转换为毫秒。
这有一个巨大的影响,我的天,因为如果你想 最精确的描述在秒或毫秒,你必须使用 TotalSeconds或 TotalMilliseconds属性,它们都是类型 double。
TotalSeconds
double