“var”在至少一个执行路径上为 null - 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)

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

谢谢!


明月笑刀无情
浏览 71回答 1
1回答

慕哥6287543

通过此验证就足够了:&nbsp;if&nbsp;(actor?.ProducerAgreementIds?.Count&nbsp;>&nbsp;0) &nbsp;{ &nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP