在下面的示例中,为什么Milliseconds属性返回0但TotalMilliseconds属性返回5000
// 5 seconds
TimeSpan intervalTimespan = new TimeSpan(0, 0, 5);
// returns 0
intervalTimespan.Milliseconds;
// returns 5000.0
intervalTimespan.TotalMilliseconds
答案 0 :(得分:62)
因为Milliseconds
返回Milliseconds部分,而TotalMilliseconds返回Timespan
示例:0:00:05.047
毫秒:47
总毫秒数:5047
答案 1 :(得分:60)
简单:
答案 2 :(得分:2)
这是因为intervalTimespan.Milliseconds;返回时间跨度的毫秒分量。 在你的timepan构造函数中,你只有小时分钟和第二个分量,这就是结果为0的原因。 intervalTimespan.TotalMilliseconds - 这可以获得时间跨度的总毫秒数。 例如:
// 5 miliseconds
TimeSpan intervalTimespan = new TimeSpan(0, 0,0,0,5);
// returns 5
intervalTimespan.Milliseconds;
// returns 5
intervalTimespan.TotalMilliseconds
答案 3 :(得分:1)
很明显,Miliseconds
只返回TimeSpan
的二十分之一部分,而TotalMiliseconds
则计算TimeSpan
代表的时间百分比。
在你的情况下,首先返回0
因为你有5秒,第二次返回5000
因为5s == 5000ms
答案 4 :(得分:1)
TimeSpan还有其他重载
TimeSpan(hour, minute, seconds)
TimeSpan(days, hour, minute, seconds)
TimeSpan(days, hour, minute, seconds, milliseconds)
毫秒属性将返回实际的毫秒值
TotalMilliseconds返回总毫秒数,包括天,小时,分钟和秒
答案 5 :(得分:0)
其他事情未提及的一件重要事情是(根据文档):
newVersion
属性代表整毫秒,而Milliseconds
属性代表整数和小数毫秒。
这也可以从TotalMilliseconds
的言论中扣除:
此属性将实例的值从滴答转换为毫秒。
这对IMO有很大的影响,因为如果要以秒或毫秒为单位最精确的表示形式,则必须使用TotalMilliseconds
或TotalSeconds
属性的类型为TotalMilliseconds
。