我有下面的代码。
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语句中也不会以这种方式工作。