我有以下代码。
(!string.IsNullOrEmpty(billInfo.BillingMethod) || (!billInfo.BillingMethod.Equals(bill) && bill != null)
我知道我得到一个空引用异常,因为它很可能比较equals方法中的null值。但是我对如何更改逻辑感到困惑,所以我仍然在不使用方法的情况下得到相同的结果。
答案 0 :(得分:0)
您需要检查可能为null的所有内容。我只是假设billInfo也可以为null。此外,陈述的顺序很重要。
127.0.0.1 localhost
答案 1 :(得分:0)
NullReferenceException
或billInfo
为空,则可能会发生{p> BillingMethod
。因此,首先检查billInfo
不等于null,然后检查其他条件。此外,||
之后的条件是另一种方式。因为如果第一个语句失败,没有必要检查不为空。
请改为尝试:
if(billInfo != null && (!string.IsNullOrEmpty(billInfo.BillingMethod) ||
(bill != null && !billInfo.BillingMethod.Equals(bill)))
{
// Your code here
}