有没有人对如何检查值是否为DBNull有偏好?我发现这两个语句给了我想要的结果,但我只是想知道是否有偏好?
if (any is System.DBNull)
等同于:
if (any == System.DBNull.Value)
谢谢!
发布于 2008-09-19 21:14:20
if (any == System.DBNull.Value) ...我更喜欢这个,很简单,因为我把它理解为比较值,而不是类型。
发布于 2008-09-19 21:20:12
我倾向于使用
if (DBNull.Value.Equals(value)) {
//
}或
if (Convert.IsDBNull(value)) {
//
}发布于 2008-09-20 22:41:43
is并不像Kevlar623所说的那样使用反射。它映射到IL中的isinst操作。在这个层面上,比较性能是完全愚蠢的,除非你在导弹制导系统上工作。
作为一个偏执的开发者,我不能相信唯一存在的值就是value is DBNull**.**,我用的是value is DBNull**.**,这听起来是对的。错误就会发生。
https://stackoverflow.com/questions/105671
复制相似问题