私はこのコードを持っています:
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(Of Double) であり、CELL_VALUE_INT は Nullable(of Integer) です
Quickwatch では、条件は False に正しく評価されますが、If() 関数を実行すると True 部分に評価されます。