S1172的误报 - “应删除未使用的方法参数”

时间:2015-10-28 14:14:01

标签: c# sonarqube sonar-runner

我从规则csharpsquid得到误报:S1172 - “应删除未使用的方法参数”以获取以下代码:

public class ExampleConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        return null;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}

Convert和ConvertBack都是IMultiValueConverter实现的一部分,规则声明“虚拟,覆盖方法和接口实现被忽略”。但是,在这种情况下,它会触发Convert和ConvertBack中的每个参数。

这是规则的错误,还是我可能错误地设置了某些内容?

1 个答案:

答案 0 :(得分:3)

目前,C#插件分别对每个文件进行分析,并且仅使用mscorlib added as a referencePOST在PresentationFramework.dll中定义,它没有添加到编译中包含的引用中,因此编译器无法找到它,也无法知道这两种方法是否属于那个界面。

您不会遇到与SonarLint for Visual Studio相同的问题,因为它使用了所有引用。 (但这只适用于开发人员机器。)我们目前正在努力将同样准确的信息提供给SonarQube平台。