【发布时间】:2017-10-29 11:41:51
【问题描述】:
我正在阅读一本书以通过 Microsoft 考试 70-483,但在以下问题上有点卡住:
以下代码被装箱到对象o中。
double d = 11.5;
object o = d;
您被要求将对象 o 转换为 int。您应该在代码中使用什么选项?
int i = (int)o; //Option : A
int i = (int)(double)o; //Option : B
int i = (int)(float)(double)o; //Option : C
int i = (float)o; //Option : D
根据书,真正的答案是 C,但我不明白为什么选项 b 是错误的。当我尝试同时运行它们时,结果是相同的。选项B和选项C有什么区别吗?你有什么意见?
【问题讨论】:
-
这本书是 The C# Programmer's Study Guide (MCSD)。考试:70-483。作者:阿萨德、阿里、阿里、哈姆扎
-
好吧,A 会失败(“指定的强制转换无效。”),D 也会失败(“不能将类型 'float' 隐式转换为 'int'。”)所以你唯一的选择是B 和 C。他们之间,我真的看不出有什么区别。
-
我认为这是由于自定义指令序列。欲了解更多信息,请访问以下链接:https://ericlippert.com/2009/03/03/representation-and-identity/
标签: c# type-conversion