为什么我不能将对象转换为十进制(代码在下面,record["Cost"]
等于1 (int)
)?
我收到以下错误
'无法取消装箱记录[“费用”]'
我将使用TryParse
方法,但我不明白这个错误的来源是什么。
cost = (decimal?) record["Cost"];
答案 0 :(得分:6)
record["Cost"]
的值是一个盒装的int。取消装箱转化仅允许您转换为相同的类型。 (至少在广义上;存在一些差异,但它们在这里无关紧要。)
你应该做的是取消装箱到int
然后转换为decimal?
:
cost = (decimal?) (int) record["Cost"];
或者,如果cost
已被声明为decimal?
类型,则可以使用隐式转换:
cost = (int) record["Cost"];