我总是使用合并运算符(又名"非常惊讶的运算符,即" ??")来摆脱虚假的nullables(通常从DB获取为允许空值但是我知道永远不会达到那个价值。看起来就是这样。
int serious = GetSomeReallyNonNullValue();
int? phony = GetNullableButActuallyNonNullValue();
int result = serious + (phony ?? 0);
然而,我只是注意到以下实际编译。无法理解它是如何有意义的。我无法直观地看到空值是否会将表达式评估为真或假......
int? test = null;
if (test < 1337) ;
答案 0 :(得分:1)
有很多关于C#中“提升”操作的文章(例如here),其中Nullable<T>
个参数的运算符在所有操作数都是非T
时被视为运算符空值。而null
只相当于自己。
通常从DB获取为允许空值,但我知道永远不会达到该值
在哪种情况下,为什么列未设置为not null
?
解除了,因为很多数据库都不应该是可空列。