总是错误的条件语句 - sonarqube

always false conditional statement - sonarqube

在 sonarqube 中分析我的代码时,我收到一条错误消息,指出条件总是计算为 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/with resharper 中,我在代码中没有收到任何错误。这是 sonarqube 中的误报,我应该抑制它吗?

谢谢

这是 sonarqube 中的一个已知错误,描述如下:https://github.com/SonarSource/sonar-dotnet/issues/2369

而不是抑制它,你可以写:

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