【发布时间】:2015-04-27 17:52:07
【问题描述】:
我是 C# 新手(但我知道 C++、JavaScript 和 Java),我正在使用 JSON.net 将 JSON 文件解析为 Dictionary<string, object>。现在我试图将一个被解析为long 的值存储到一个双变量中。 (我查看了检查器,它说字典值的类型是object{long}。)
object obj = 123L;
double dbl = (double)obj;
这给了我一个InvalidCastException。我做了一些实验,发现Convert.ToDouble(obj) 工作得很好。我环顾四周,找不到任何关于铸造和转换之间的区别。另外:
var v = 123L;
double dbl = (double)v;
这非常有效。我猜这是因为在这种情况下,var 在编译时变成了 Int64。
【问题讨论】:
标签: c# casting type-conversion