C#开发-Null的整型数值比较

04-27 1172阅读

大家都知道整数类型、浮点数类型、布尔类型比较的规则。这在各个语言中都是通用的。但是有谁知道Null类型和整型比较的结果呢?

C#开发-Null的整型数值比较
(图片来源网络,侵删)

我在.NET8.0下编写了这个测试程序来解释Null和整型比较的结果。

int? count = null;
bool compare1 = count > 2;
bool compare2 = count > 0;
bool compare3 = count > -1;
Console.WriteLine($"{nameof(compare1)}: {compare1}");
Console.WriteLine($"{nameof(compare2)}: {compare2}");
Console.WriteLine($"{nameof(compare3)}: {compare3}");
bool compare4 = count  

运行结果如下所示。

compare1: False
compare2: False
compare3: False
compare4: False
compare5: False
compare6: False
compare7: False
compare8: False
compare9: False

我们可以看到null无论是跟正数比较还是跟零或负数比较,比较返回的结果总是false。

根据这样的特性我们可以用来简化检查非空的代码。

这是优化前的代码。

if (nullableList != null && nullableList.Count > num)
{
    // do something
}

这是优化后的代码。

if (nullableList?.Count > num)
{
    // do something
}

利用好跟null比较总是返回false的特性,我们可以优化项目里大量检查非空的代码。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]