我有这个代码:
dstCell.CELL_VALUE_INT = If(srcCell.CELL_VALUE_FLOAT IsNot Nothing,
Math.Round(CDbl(srcCell.CELL_VALUE_FLOAT)),
Nothing)
当srcCell.CELL_VALUE_FLOAT 是 Nothing它神秘地评估为 True 部分!
有趣的是,一个正常的 If 语句正确地评估为 False 部分:
If (srcCell.CELL_VALUE_FLOAT IsNot Nothing) Then
dstCell.CELL_VALUE_INT = Math.Round(CDbl(srcCell.CELL_VALUE_FLOAT))
Else
dstCell.CELL_VALUE_INT = Nothing
End If
有任何想法吗?
感谢你!
编辑: CELL_VALUE_FLOAT 是 Nullable(双精度), CELL_VALUE_INT 是 Nullable(整数)
在 Quickwatch 中,条件将 correclty 评估为 False,但在运行 If() 函数时,评估为 True 部分。