Jun*_*r M 0 c# casting type-conversion numeric-conversion
这是一段简单的C#代码:
Convert.ToInt32(TimeSpan.FromMinutes(5).TotalMilliseconds);
//which brings me 300000
(int)TimeSpan.FromMinutes(5).Milliseconds;
//which brings me 0
Run Code Online (Sandbox Code Playgroud)
(int)与Convert.ToInt32()?相比,为什么投射结果会有所不同?
两者都不应该带来相同的结果吗?
在第一个版本中,您正在使用该TotalMilliseconds属性 - 在您使用的第二个版本中Milliseconds.
举一个更简单的例子,没有转换或调用Convert.ToInt32:
TimeSpan ts = TimeSpan.FromHours(49);
Console.WriteLine(ts.Hours); // 1 (it's two days and one hour)
Console.WriteLine(ts.TotalHours); // 49 (it's 49 hours in total)
Run Code Online (Sandbox Code Playgroud)