The C# 5.0 spec reads in chapter 7.1.3
https://msdn.microsoft.com/en-us/library/ms228593.aspx
The lifted operator produces the value
false
if one or both operands arenull
.
However testing and also this MSDN link
http://msdn.microsoft.com/en-us/library/2cf62fcy(v=vs.100).aspx
int? num1 = 10;
int? num2 = null;
// 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");
}
/* Output:
* num1 == num2 returns true when the value of each is null
*/
shows that comparing two nullable values that are both null
returns true
.
It makes sense but it contradicts the sentence from the spec, does it not?