3 回答

TA貢獻1993條經驗 獲得超6個贊
當您執行與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 關注
- 235 瀏覽
添加回答
舉報