可能是重复问题:
为什么我不能将int拆箱为decimal?
好的,C#/.NET专家们,能否有人告诉我为什么这个强制转换起作用:
static void Main(string[] args)
{
int _int = 0;
decimal _decimal = 1;
_int = (int)_decimal;
Console.ReadLine();
}
...但是这两个都不行?
static void Main(string[] args)
{
int _int = 0;
decimal d = 1;
object _decimal = d;
_int = (int)_decimal;
Console.ReadLine();
}
static void Main(string[] args)
{
int _int = 0;
object _decimal = 1M;
_int = (int)_decimal;
Console.ReadLine();
}
只要我从明确声明的十进制类型转换,我就可以将十进制转换为整数,但当十进制存储在对象类型中时,我无法将其转换为整数?这是怎么回事?
注意:我知道我可能可以使用Convert.ToInt32(),但我正在努力弄清楚为什么这里不起作用。