3 回答
TA贡献1993条经验 获得超5个赞
当您执行与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。
- 3 回答
- 0 关注
- 191 浏览
添加回答
举报