转换为多种可能的类型?

时间:2014-11-21 10:13:20

标签: c#

我在互联网上看到了以下代码。任何人都可以向我解释它的作用吗?如果我的标题错了,如果我得到正确答案,我会改变它:

public static void Calculate(float amount)
{
   object amountRef = amount;
   int balance = (int)(float)amountRef;
   Console.WriteLine(balance);
};

(int)(float)到底做了什么?很难在互联网上找到解释。

2 个答案:

答案 0 :(得分:6)

大概是boxing and unboxing

如果您将float保存在object(装箱)中,则需要先使用原始类型将其取消装箱。比你的程序把它投到int

这就是你不能说的原因;

object amountRef = amount;
int balance = (int)amountRef;

你会得到;

  

指定的演员表无效。错误:取消装箱不正确

答案 1 :(得分:3)

你过分思考这个问题(如果你已经知道了投射的目的)。

一些额外的括号可能会更清楚:

(int)((float)amountRef)

amountRef投放到float,然后将此新float投射到int