当您执行与nullable类型的比较时,如果可空类型之一的值为 null 而另一个不是,则所有比较的计算结果false都为,除了!= (not equal)。重要的是不要假设因为特定的比较返回 false,相反的情况返回 true。在以下示例中,10 不大于、小于或等于 null。只有 num1 != num2 评估为真。int? num1 = 10;int? num2 = null;if (num1 >= num2){ Console.WriteLine("num1 is greater than or equal to num2");}else{ // This clause is selected, but num1 is not less than num2. Console.WriteLine("num1 >= num2 returned false (but num1 < num2 also is false)");}if (num1 < num2){ Console.WriteLine("num1 is less than num2");}else{ // The else clause is selected again, but num1 is not greater than // or equal to num2. Console.WriteLine("num1 < num2 returned false (but num1 >= num2 also is false)");}if (num1 != num2){ // This comparison is true, num1 and num2 are not equal. Console.WriteLine("Finally, num1 != num2 returns true!");}// Change the value of num1, so that both num1 and num2 are null.num1 = null;if (num1 == num2){ // The equality comparison returns true when both operands are null. Console.WriteLine("num1 == num2 returns true when the value of each is null");}/* 输出:num1 >= num2 返回 false(但 num1 < num2 也是 false)num1 < num2 返回 false(但 num1 >= num2 也是 false)最后, num1 != num2 返回 true!num1 == num2 当每个值都为空时返回真*/检查此 Microsoft文档。在此处查看Live Fiddle。