0

オブジェクトを10進数に変換できないのはなぜですか(コードは以下、record["Cost"]等しい1 (int))?

次のエラーが発生します

'record["Cost"]のボックスを解除できません'

メソッドを使用TryParseしますが、このエラーの原因がわかりません。

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

1 に答える 1

6

の値record["Cost"]はボックス化されたintです。開箱変換では、同じタイプにのみ変換できます。(少なくとも大まかに言えば、いくつかの違いがありますが、ここでは関係ありません。)

あなたがすべきことは、箱を開けてから:intに変換することです。decimal?

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

または、costがすでにタイプとして宣言されている場合はdecimal?、暗黙的な変換を使用できます。

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