我很好奇使用if(some_value is DBNull)对比的利弊是什么if(DBNull.Value.Equals(some_value)).我个人更喜欢if(some_value is DBNull)因为我发现它更具可读性.我知道微软建议使用if(DBNull.Value.Equals(some_value))根据https://msdn.microsoft.com/en-us/library/system.dbnull%28v=vs.110%29.aspx.
我会顺路走DBNull.Value.Equals。
为什么?
因为is会检查类型是否相等。它必须查找左手类型并将其与它也必须查找的右手类型进行匹配。之后,它可以比较类型,很可能是通过检查引用相等性来比较。
这比仅仅检查引用相等性要低效,而后者DBNull.Value.Equals确实如此。由于 的实例只有一次DBNull.Value,因此该检查非常准确且非常快。
| 归档时间: |
|
| 查看次数: |
355 次 |
| 最近记录: |