在C#中,以下代码的执行结果是()

{
int i=321;
object o=i;
float j=(float)o;
Console.writeline(j);

}
A.321;
B.321.0;
C.编译错误;
D.运行错误;

D.运行错误

追问

谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-16

    编译能通过,是因为object可以与任意类型互转

    运行不通过,原因初步推断:object赋值给值类型会引发拆箱,而根据msdn,拆箱要检查类型与装箱时一致。因此上述拆箱不能进行。

    http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx

本回答被网友采纳
第2个回答  2014-11-16
结果图呢?只有b和c在语法上是对的,然后如果i和j变了,就选c,没变,就选b
第3个回答  2014-11-16
应该是D指定的转换无效