当我想将 1 转换为 double 时,它不起作用。当我施放 1.0 使其加倍时,它起作用了。为什么?
我有以下代码:
static void Main(string[] args)
{
ArrayList liste1 = new ArrayList();
liste1.Add(1);
liste1.Add("Hallo");
liste1.Add(2.5);
double num = (double)liste1[0] + (double)liste1[2];
Console.WriteLine(num);
Console.ReadLine();
}
当我将 liste1.Add(1);
更改为 liste1.Add(1.0);
时,它可以工作。为什么它适用于 1.0
而不适用于 1
?
当我第一次将 liste1[0] 转换为 int,然后转换为 double 时,它也有效。你能告诉我为什么吗?
谢谢
最佳答案
ArrayList
保存对象。如果您添加一个int
,它将被“装箱”到一个对象中,并且只能“拆箱”回int
- 而不是double
。 p>
关于c# - 为什么类型对象中的 1 不能转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8489124/