[英]null == null returning false?
谁能提供任何想法为什么我的空检查评估不正确?
还应指出,如果i不为null,则评估是正确的。 我不确定还有什么相关的,但请告诉我我需要提供的其他详细信息。
foreach (var item in selectedItems)
{
var i = inspectionItems.Keys.SingleOrDefault(x => x.InspectionItemId == item.InspectionItemId);
if (i != null)
{
// Process i
}
else
{
// create
}
}
我的猜测是您重载了==
运算符。 Object.Equals(i, null)
可以确认这一点。
如果要重载==
运算符,则可能是您的逻辑错误地处理了null
情况。
一种使这种情况发生的[曲折]方法是:-
public enum Cheat
{
@null = 0,
foo = 1,
bar = 2
}
如果您将Cheat.@null
分配给i
则会得到显示的手表值。
i
是什么类型? 它在调试器中显示为null
或者您在该类中做了其他可能导致==
失败的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.