我有一个条件,我正在写它检查三件事。
if(LoggedInMembershipUser == null || obj == null || boolVal)
在这种情况下,“LoggedInMembershipUser”只是 Membership.GetUser(),“obj”是一些随机业务对象,“boolVal”显然是一个布尔值。当我编写上述语句时,ReSharper 告诉我语句的 boolVal 部分始终为假。但是当我把 boolVal 放在下面的开头时,我没有得到那个通知。
if(boolVal|| LoggedInMembershipUser == null || obj == null)
为什么第一个总是假的,而第二个却不是?
编辑:这是在网格视图的行数据绑定中。网格显示来自具有相同基类的两个对象的结果,因此如果“obj”是其中一种对象类型而不是另一种,则“obj”将具有一个值。boolVal 是它是哪种类型的对象的指标,所以现在我考虑一下,我猜如果 obj 为空,那么 boolVal 将始终为真。ReSharper 是否以某种方式意识到了这一点?哦,我敢打赌,这是因为在我的行上方查看我的代码:
if (!uploaded){
var obj = GetObjectLogic();
}
好的,感谢您的帮助评论。我想这可以被投票删除或其他。