'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)
{
}
使用 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)
{
}