冗余显式数组创建参数' params'参数对于索引器不正确

时间:2017-09-28 16:58:08

标签: c# visual-studio-2017 resharper

在下面的示例代码中(除了说明我的问题之外,它不应该做任何事情):

public class Example
{
  private void ExampleMethod()
  {
    this[new string[0]] = "something";
  }

  public string this[params string[] stuff]
  {
    get { return null; }
    set { stuff[0] = ""; }
  }
}

ReSharper提示我警告:

  

冗余显式数组创建参数' params'参数。

对于具有参数的方法,这是正确的,但在索引器的情况下,数组创建不是多余的。 Resharper的'fix'将此更改为以下内容,不会编译:

this[] = "something"; // Won't compile

对我来说,索引器需要一个参数是有道理的,所以这是ReSharper中的一个错误,还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

似乎这是一个bug,我已经用JetBrains提升了它。特定请求是here,虽然令人讨厌,但您似乎必须登录才能查看它。

因此,我会在此发布任何更新。

(编辑:我发现你也可以提出here,这是公开可见的。)

一般的感觉似乎是在索引器中使用params是不明智的。我倾向于同意。就个人而言,我从来没有遇到过需要这样做的事情,而且对我来说确实很奇怪,但这并不代表没有用例。

就我而言,我没有编写代码,而且目前还不能更改代码。如果你发现自己处于相同的情况,最简单的事情就是如上所述,选择"禁用一次评论"关于警告。它将在未来的清理中被忽略。