为什么在C#中比较可空和非可空int是有意义的?

时间:2015-09-25 10:10:05

标签: c# null nullable

我总是使用合并运算符(又名"非常惊讶的运算符,即" ??")来摆脱虚假的nullables(通常从DB获取为允许空值但是我知道永远不会达到那个价值。看起来就是这样。

int serious = GetSomeReallyNonNullValue();
int? phony = GetNullableButActuallyNonNullValue();
int result = serious + (phony ?? 0);

然而,我只是注意到以下实际编译。无法理解它是如何有意义的。我无法直观地看到空值是否会将表达式评估为真或假......

int? test = null;
if (test < 1337) ;

1 个答案:

答案 0 :(得分:1)

有很多关于C#中“提升”操作的文章(例如here),其中Nullable<T>个参数的运算符在所有操作数都是非T时被视为运算符空值。而null只相当于自己。

  

通常从DB获取为允许空值,但我知道永远不会达到该值

在哪种情况下,为什么列未设置为not null

解除了,因为很多数据库都不应该是可空列。