(any == System.DBNull.Value)vs(any is System.DBNull)

Ric*_*mil 10 .net null dbnull

有没有人喜欢如何检查一个值是DBNull什么?我发现这两个陈述给了我想要的结果,但只是想知道是否有偏好?

if (any is System.DBNull)

与...一样:

if (any == System.DBNull.Value)

谢谢!

Bil*_* Jo 11

我倾向于使用

if (DBNull.Value.Equals(value)) {
    //
}
Run Code Online (Sandbox Code Playgroud)

要么

if (Convert.IsDBNull(value)) {
    //
}
Run Code Online (Sandbox Code Playgroud)


Ome*_*ten 5

is不像Kevlar623那样使用反射.它映射到isinstIL中的操作.在这个层面上,比较性能是完全愚蠢的,除非你正在研究导弹制导系统.

我用value is DBNull.这听起来是正确的,作为一个偏执的开发者,我不能相信存在的唯一价值DBNull.Value.虫子发生了.


Mag*_*Kat 4

if (any == System.DBNull.Value) ...
Run Code Online (Sandbox Code Playgroud)

我更喜欢那个,因为我把它理解为比较值,而不是类型。