'var' 在至少一个执行路径上为 null - sonarqube

'var' is null on at least one execution path - sonarqube

使用 sonarqube 分析我的代码并被告知“'actor' 在至少一个执行路径上为空”以下代码

if (actor.ProducerAgreementIds != null && actor.ProducerAgreementIds.Count > 0)
   {

actor.ProducerAgreementIds 是一个 List<string>

这条语句不是已经在执行空检查了吗?或者应该改为:

if (actor != null && (actor.ProducerAgreementIds != null && actor.ProducerAgreementIds.Count > 0))
    {

替代方法是使用条件访问

if (actor?.ProducerAgreementIds != null && actor.ProducerAgreementIds.Count > 0)

适当且不会引起下游问题?

谢谢!

有了这个验证就足够了:

 if (actor?.ProducerAgreementIds?.Count > 0)
 {
 }