【发布时间】:2012-02-14 12:29:33
【问题描述】:
在下面的代码中,我希望var 被解析为Int64,但它被解析为double。为什么会这样?
string a = "1234";
bool asInt = true;
var b = (asInt) ? Int64.Parse(a) : Double.Parse(a) ;
Console.WriteLine(b.GetType());
【问题讨论】:
-
我有点惊讶,甚至编译。我认为三元的双方都必须返回相同的类型,尽管我认为有一个从 long 到 double 的隐式对话
-
有。 ,) 这解释了这一点。