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()
?@AniketConvert.ToDecimal()
是一个很好的解决方案:)