object a = new object();
a = 0;decimal d = (decimal)a; //报错:Specified cast is not validConvert.ToDecimal 和 decimal.parse 就没有问题.
为什么a = 0时会报错?能不能讲一下原理,谢谢!
a = 0;decimal d = (decimal)a; //报错:Specified cast is not validConvert.ToDecimal 和 decimal.parse 就没有问题.
为什么a = 0时会报错?能不能讲一下原理,谢谢!
虽然你把a赋予了0可是a本身的data type还是object. 如果你使用的是.NET 3.5的话, 你可以使用
var a = 0;decimal d = (decimal)a;查找问题的关键词: implicit和explicit
a = 0; //这个时候a是int类型
所以不能隐士转换。要用convert等函数转换decimal d = (decimal)a; //报错:Specified cast is not valid Convert.ToDecimal 和 decimal.parse 就没有问题
thank you , your are right.