测试 Single 值是否等于 Nothing 的正确方法

Dav*_*nck 1 vb.net resharper

下面的代码行给出了 Resharper 的警告:“浮点数与相等运算符的比较”。对值进行舍入时可能会损失精度。

Dim samples() As Single

If samples(i) = Nothing Then
    samples(i) = _mPreviousSamples(i)
End If
Run Code Online (Sandbox Code Playgroud)

检查值是否存在的最佳方法是什么?

Joe*_*orn 5

检查值是否存在的最佳方法是什么?

Nothing我认为您对 Single 等值类型有错误的概念“ ”。对于值类型,Nothing更正确地解释为该类型的默认值:在 Single 的情况下,为 0.0.0。

如果您想知道值是否存在于值类型中,则需要首先初始化值类型以保存在此上下文中永远不可能存在的值。对于诸如 Single 之类的原始类型,Nothing很少足够好。在 Single 的情况下,尝试使用Single.NaN,并使用检查值Single.IsNan()