Jac*_*cek 0 .net c# type-conversion
为什么我不能将对象转换为十进制(代码低于,record["Cost"]等于1 (int))?
我得到以下错误
'无法取消装箱记录["费用"]'
我将使用TryParse方法,但我不明白这个错误的来源是什么.
cost = (decimal?) record["Cost"];
Run Code Online (Sandbox Code Playgroud)
值为record["Cost"]boxed int.取消装箱转化仅允许您转换为相同类型.(至少在广义上;存在一些差异,但它们在这里无关紧要.)
你应该做的是取消装箱int然后转换为decimal?:
cost = (decimal?) (int) record["Cost"];
Run Code Online (Sandbox Code Playgroud)
或者如果cost已经声明为类型decimal?,则可以使用隐式转换:
cost = (int) record["Cost"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
156 次 |
| 最近记录: |