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

问题描述 投票:0回答:1

使用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)

是否合适,不会造成下游问题?

谢谢!

c# sonarqube nullreferenceexception
1个回答
1
投票

通过此验证就足够了:

 if (actor?.ProducerAgreementIds?.Count > 0)
 {
 }
© www.soinside.com 2019 - 2024. All rights reserved.