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

if(any is System.DBNull)

同样如下:

if(any == System.DBNull.Value)

谢谢!

有帮助吗?

解决方案

if (any == System.DBNull.Value) ...

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

其他提示

我倾向于使用

if (DBNull.Value.Equals(value)) {
    //
}

if (Convert.IsDBNull(value)) {
    //
}

不使用反射,正如Kevlar623所说。它映射到IL中的 isinst 操作。在那个层面上,比较性能是完全愚蠢的,除非你正在研究导弹制导系统。

我使用值是DBNull 这听起来不错,作为一个偏执的开发者,我不能相信存在的唯一值是 DBNull .value的。错误发生。

如果你在c#中,你应该使用 == ; is 使用反射,计算成本更高,特别是因为只有一个 System.DBNull 的实例。

我喜欢“is System.DBNull”更多是因为我讨厌将某些东西与NULL进行比较并让它成为现实的想法。许多其他语法(它到底是多少?)会有任何东西== NULL返回NULL。

我明白有DBNull.Value是有原因的。我知道。我正在列出我的偏好:)

这是表格跟随功能的一个很好的例子。无论哪一个执行效率更高,都是要走的路。它看起来像什么,读取它或称为你的坏名称是无关紧要的。有效地使用该语言,不要将语言塑造成新的语言。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top