私が書いている条件は、3つのことをチェックしています。
if(LoggedInMembershipUser == null || obj == null || boolVal)
この場合、「LoggedInMembershipUser」は単なるMembership.GetUser()であり、「obj」はランダムなビジネスオブジェクトであり、「boolVal」は明らかにブール値です。上記のようにステートメントを書くと、ReSharperはステートメントのboolVal部分が常にfalseであると教えてくれます。しかし、以下のように最初にboolValを入れても、その通知はありません。
if(boolVal|| LoggedInMembershipUser == null || obj == null)
なぜ最初のものは常に偽であるのに、2番目のものはそうではないのでしょうか?
編集:これはグリッドビューの行データバインドにあります。グリッドは、同じ基本クラスを持つ2つのオブジェクトからの結果を表示しているため、「obj」は、オブジェクトタイプの一方であるが他方ではない場合、値を持ちます。boolValは、それがどのタイプのオブジェクトであるかを示すインジケーターであるため、考えてみると、objがnullの場合、boolValは常にtrueになります。ReSharperはどういうわけかそれを認識していましたか?ああ、それは私が持っている行の上に私のコードを見たからだと思います:
if (!uploaded){
var obj = GetObjectLogic();
}
ヘルプコメントをありがとう。私はこれが削除されるか何かに投票することができると思います。