C#开发-Null的整型数值比较
大家都知道整数类型、浮点数类型、布尔类型比较的规则。这在各个语言中都是通用的。但是有谁知道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的特性,我们可以优化项目里大量检查非空的代码。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。