比较运算符如何与null int一起工作?

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

在尝试可为空的int时,我看到比较运算符给了我意外的结果。例如,在下面的代码中,我得到的输出是 。注意,它也不会打印“

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,我在这里遗漏了什么吗?

回答:

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

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

因此,无论a > ba < b评估,以falsea为空…

以上是 比较运算符如何与null int一起工作? 的全部内容, 来源链接: utcz.com/qa/404886.html

回到顶部