我开始学习可空类型,并遇到以下行为。
当尝试使用可空整数时,我发现比较运算符给出了意外的结果。例如,在我的以下代码中,我得到的输出是"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);
我原本希望任何非负整数都大于零,难道我漏掉了什么吗?
void compare(int? a, int b)
,也就是说,第二个参数应该是非空的。 - Olivier Jacot-Descombes