无论如何,DBNull需要什么?

Pan*_*wal 2 c# dbnull

可能重复:
DBNull有什么意义?

自从我开始使用.NET以来,我总是问自己一个问题:

为什么我们需要DBNull类型?简单的null引用是不够的?

MSDN说DBNull"表示不存在的值".从逻辑的角度来看 - 这一句话解释了为什么不能使用空引用 - 因为它是一个空引用而不是缺少值.但引入一种导致很多麻烦的类型是否足够?

顺便说一句:如果有人在辩护方面有话要说,DBNull我会非常感激.

Dam*_*ver 8

DBNull自最早版本的.Net框架以来就已存在.

Nullable值类型(Nullable<T>)仅在框架的版本2之后存在.

因为,在版本2之前,有可能从数据库中收回一个null int值,你会如何建议它被表示?然后,为了保持一致性,同样用于表示所有DB空值,无论它们是否转换为值或引用类型.