总是错误的条件语句-sonarqube

时间:2019-05-08 14:16:13

标签: c# sonarqube conditional

在使用声纳分析我的代码时,我收到一条错误消息,指出条件始终计算为false,并且以下代码永远不会执行后续代码:

private RedirectItem FindItemToItemRedirect(string url)
{
    var redirectDefinition = RedirectDefinition?.ItemsRedirects;
    if (!redirectDefinition?.Any() ?? false)
        return null;

    RedirectItem result;
    if (redirectDefinition.TryGetValue(url, out result))
        return result;

    return null;
}

它说if (!redirectDefinition?.Any() ?? false)始终为假,并且其下的null永远不会执行。但是,在我的IDE /带有共享工具的情况下,我在代码中没有收到任何错误。这是声纳古贝的假阳性,我应该压抑它吗?

谢谢

1 个答案:

答案 0 :(得分:1)

这是声纳法中的一个已知错误,在这里进行了描述:https://github.com/SonarSource/sonar-dotnet/issues/2369

您可以编写以下内容来代替它:

if (!redirectDefinition?.Any().GetValueOrDefault())