всегда ложное условное утверждение - sonarqube - PullRequest
0 голосов
/ 08 мая 2019

, анализируя мой код в sonarqube, я получаю сообщение о том, что условное выражение всегда оценивается как ложное, и последующий код никогда не выполняется в приведенном ниже коде:

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) всегда ложно, а ноль под ним никогда не выполняется. Однако в моей IDE / с Resharper я не получаю ошибок для этого в коде. Это ложное срабатывание в sonarqube, и я должен просто подавить его?

спасибо

1 Ответ

1 голос
/ 08 мая 2019

Это известная ошибка в sonarqube, описанная здесь: https://github.com/SonarSource/sonar-dotnet/issues/2369

Вместо того, чтобы подавлять это, вы можете написать:

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