S1172 上的误报 - "Unused method parameters should be removed"

False Positives on S1172 - "Unused method parameters should be removed"

我从以下代码的规则 csharpsquid:S1172 - "Unused method parameters should be removed" 中得到误报:

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 实现的一部分,规则规定 "virtual, override methods and interface implementations are ignored"。但是,在这种情况下,它会为 Convert 和 ConvertBack 中的每个参数触发。

这是规则的错误,还是我设置不正确?

C# 插件目前单独分析每个文件,并且只有 mscorlib added as a referenceIMultiValueConverter是在PresentationFramework.dll中定义的,它没有添加到编译包含的引用中,因此编译器找不到它,也不知道这两个方法是其中的一部分接口。

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