如何绕过对象NULL引用检查



我有下面的代码。

var cfg = _cfgUtil.GetCCfg(addr.Cnt, li.txDte);
if (cfg != null && cfg.Isabc)
{
await <some operation>
}

它在第二行中失败

if (cfg != null && cfg.Isabc)

我没有得到的是,如何绕过这个NUll参考检查

我得到的确切错误是:

系统。NullReferenceException:"对象引用未设置为对象的实例。'

我认为您的Isabc具有null值。

这也需要检查,cfg.Isabc != null

或者,如果您使用的是一个新版本的C#,则以下操作将起作用,而无需单独检查。

// Option A:
if(cfg != null && cfg.Isabc != null)
{
//...
}
// Option B:
if(cfg?.Isabc is not null)
{
//...
}

这一切都假设Isabc的类型是bool?,因为通常bool不会是null,其他类型在if语句中也不会以这种方式工作。

最新更新