我在互联网上看到了以下代码。任何人都可以向我解释它的作用吗?如果我的标题错了,如果我得到正确答案,我会改变它:
public static void Calculate(float amount)
{
object amountRef = amount;
int balance = (int)(float)amountRef;
Console.WriteLine(balance);
};
(int)(float)
到底做了什么?很难在互联网上找到解释。
答案 0 :(得分:6)
如果您将float
保存在object
(装箱)中,则需要先使用原始类型将其取消装箱。比你的程序把它投到int
。
这就是你不能说的原因;
object amountRef = amount;
int balance = (int)amountRef;
你会得到;
指定的演员表无效。错误:取消装箱不正确
答案 1 :(得分:3)
你过分思考这个问题(如果你已经知道了投射的目的)。
一些额外的括号可能会更清楚:
(int)((float)amountRef)
amountRef
投放到float
,然后将此新float
投射到int
。