小编典典

比较运算符如何与 null int 一起使用?

all

我开始学习可空类型并遇到以下行为。

在尝试 nullable int 时,我看到比较运算符给了我意想不到的结果。例如,在我下面的代码中,我得到的输出是 “both and 1 are
equal”
。请注意,它也不会打印“null”。

int? a = null;
int? b = 1;

if (a < b)
    Console.WriteLine("{0} is bigger than {1}", b, a);
else if (a > b)
    Console.WriteLine("{0} is bigger than {1}", a, b);
else
    Console.WriteLine("both {0} and {1} are equal", a, b);

我希望任何非负整数都大于 null,我在这里遗漏了什么吗?


阅读 67

收藏
2022-07-16

共1个答案

小编典典

根据MSDN -
它位于“运营商”部分的页面下方:

当您对可空类型执行比较时,如果可空类型之一的值为null而另一个不是,则所有比较的计算结果false!=

所以两者都a > ba < b评估到false因为a是空的......

2022-07-16