在使用声纳分析我的代码时,我收到一条错误消息,指出条件始终计算为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 /带有共享工具的情况下,我在代码中没有收到任何错误。这是声纳古贝的假阳性,我应该压抑它吗?
谢谢
答案 0 :(得分:1)
这是声纳法中的一个已知错误,在这里进行了描述:https://github.com/SonarSource/sonar-dotnet/issues/2369
您可以编写以下内容来代替它:
if (!redirectDefinition?.Any().GetValueOrDefault())