转换为多种可能的类型
本文关键字:类型 转换 | 更新日期: 2023-09-27 18:31:16
我在互联网上看到了以下代码。谁能向我解释一下它的作用?如果我的标题是错误的,如果我得到正确答案,我会更改它:
public static void Calculate(float amount)
{
object amountRef = amount;
int balance = (int)(float)amountRef;
Console.WriteLine(balance);
};
(int)(float)
到底是做什么的?在互联网上很难找到解释。
这是关于拳击和拆箱的。
如果将float
保存在object
(即装箱)中,则需要先使用原始类型将其拆箱。比你的程序投射到int
.
这就是为什么你不能说;
object amountRef = amount;
int balance = (int)amountRef;
你会得到;
指定的强制转换无效。错误:拆箱不正确
你想太多了(如果你已经知道铸造的目的)。
几个额外的括号可能会使它更清晰:
(int)((float)amountRef)
amountRef
被强制转换为float
,则此新float
被强制转换为int
。