0

为什么我不能将对象转换为十进制(代码如下,record["Cost"]等于1 (int))?

我收到以下错误

'不能拆箱记录[“成本”]'

我将使用TryParse方法,但我不明白这个错误的根源是什么。

cost = (decimal?) record["Cost"];
4

1 回答 1

6

的值record["Cost"]是一个装箱的 int。拆箱转换仅允许您转换为相同的类型。(至少在广义上;有一些差异,但它们在这里无关紧要。)

您应该做的是拆箱int然后转换为decimal?

cost = (decimal?) (int) record["Cost"];

或者如果cost已经声明为 type decimal?,您可以使用隐式转换:

cost = (int) record["Cost"];
于 2013-01-29T13:57:38.177 回答