null == null返回false?

Joh*_*arr 2 c# .net-4.0 visual-studio-2013

任何人都可以提供任何想法,为什么我的空检查评估错误?

还应该指出,如果我不为空,则评估是正确的.我不确定还有什么相关内容,但让我知道我需要提供的其他细节.

foreach (var item in selectedItems)
{
    var i = inspectionItems.Keys.SingleOrDefault(x => x.InspectionItemId == item.InspectionItemId);
    if (i != null)
    {
        // Process i
     }
     else
     {
       // create
     }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

Nat*_*n A 6

我的猜测是你超载了==运营商.结果Object.Equals(i, null)可以证实.

如果您使==操作员超载,则可能是您的逻辑错误地处理了null案例.