我有一个条件我写这是检查三件事情。试图理解为什么resharper告诉我表达式总是假的
if(LoggedInMembershipUser == null || obj == null || boolVal)
在这种情况下,“LoggedInMembershipUser”
只是Membership.GetUser()“目标文件”是一些随机的业务对象,而“boolVal”显然是一个布尔值。当我按照上面的语句编写语句时,resharper告诉我,语句的boolVal部分总是为false。但是当我把boolVal作为下面的beginnig时,我没有得到这个通知。
if(boolVal|| LoggedInMembershipUser == null || obj == null)
为什么第一个总是假而第二个不是?
编辑:这是在网格视图的行数据绑定。网格显示来自两个具有相同基类的对象的结果,因此如果“obj”是对象类型之一而不是另一个,则“obj”将具有值。 boolVal是一个指示器,它是哪种类型的对象现在我想到了它我猜如果obj为null,那么boolVal将始终为真。是resharper意识到一些如何?哦,我敢打赌,这是因为看我的代码我上面的线:
if (!uploaded){
var obj = GetObjectLogic();
}
好的感谢您的帮助意见。我想这可以被投票删除或其他。
“boolVal”是局部变量,字段还是属性?对于'obj'和'LoggedInMembershipUser'也是同样的问题。 –
唯一想到的就是短路。尝试使用'|'而不是'||'来查看resharper是否仍然抱怨。 – juharr
你可以把(短)测试方法放在一起,以便我们可以在上下文中看到这一点。 – gh9