C# 对象到十进制转换can';不能实施

C# 对象到十进制转换can';不能实施,c#,.net,C#,.net,我尝试从对象类型转换为十进制: Object obj = new Object(); obj = 10; decimal dec = (decimal)obj; 但是在这一行中,我得到了一个例外: 指定的强制转换无效。 你知道为什么这个拆箱不能实现吗 先谢谢你 这就是为什么要使用Convert.ToDecimal()装箱和取消装箱只能在相同类型之间发生 10literal在C#编译器中表示为一个系统。Int32(如果我是错误的人请纠正我),因此将其解装箱为十进制将导致错误您只能将值类型解

我尝试从对象类型转换为十进制:

 Object obj = new Object();
 obj = 10;
 decimal dec = (decimal)obj;
但是在这一行中,我得到了一个例外:

指定的强制转换无效。

你知道为什么这个拆箱不能实现吗


先谢谢你

这就是为什么要使用
Convert.ToDecimal()
装箱和取消装箱只能在相同类型之间发生


10
literal在C#编译器中表示为一个系统。Int32(如果我是错误的人请纠正我),因此将其解装箱为十进制将导致错误

您只能将值类型解装箱为其原始类型或该类型的可空等效版本


出于此原因,请在编写
obj=10时阅读此

,对象具有int类型的值

试试这个:

Object obj = new Object();
obj = 10M;
decimal dec = (decimal)obj;
或者这个:

Object obj = new Object();
obj = 10;
decimal dec = (decimal)(int)obj;
您应该阅读有关msdn的文章

要在运行时成功取消值类型的装箱,需要 “取消绑定”必须是对先前创建的对象的引用 通过装箱该值类型的实例。正在尝试取消装箱null 导致NullReferenceException。正在尝试取消对对象的引用的装箱 不兼容的值类型导致InvalidCastException


如何
Convert.ToDecimal()
?@Aniket
Convert.ToDecimal()
是一个很好的解决方案:)