1

我正在使用 Visual Studio 2010,项目在 VB.NET 中,我有 ReSharper 7.1

它不仅错误地报告errors警告或建议。

lblAccountID.Text = AccountID.ToString()

ReSharpererror在 ToString 上给了我一个,告诉我“参数数量不正确”。

AccountID 的 Type 是我们创建的自定义类,它具有 ToString 重载,接受 0 个参数,或 1 个参数作为 DisplayFormat,或 1 个参数作为我们创建的另一个自定义类,这是另一种显示格式。出于某种原因,ReSharper 只看到接受 1 个参数的 2 个重载,它认为接受 0 个参数的重载不存在。我在 13 个不同的地方对这种类型的对象调用 ToString,因此它报告了 13 个不同的错误,但代码编译并运行得非常好。没有错误,也没有给我忽略它的选项。

有没有办法可以关闭它?我真的不需要 ReSharper 首先告诉我这些类型的错误,因为如果它们真的存在,Visual Studio 会告诉我它们本身。


编辑

我想出了如何重新创建这个问题,但这是一个奇怪的问题。我猜这只是 ReSharper 中的一个错误。我在他们的问题跟踪器中报告了它。

这是重新创建它的最简单方法。在 1 个项目(ClassLibrary1)内部:

Public Class Class1
  Public Overridable Overloads Function ToString(i As Integer) As String
    Return "Class1 - " & i.ToString()
  End Function

  Public Overloads Function ToString(s As String) As String
    Return "Class1 - " & s
  End Function
End Class

Public Class Class2
  Inherits Class1

  Public Overrides Function ToString(i As Integer) As String
    Return "Class2 - " & i.ToString()
  End Function

  Public Overloads Function ToString(f As Boolean) As String
    Return "Class2 - " & f.ToString()
  End Function
End Class

然后在新解决方案中的新项目中(当两个项目在同一个解决方案中时无法重新创建错误),添加对从第一个项目创建的 DLL 的引用。

Dim o As New Class2
Dim s As String = o.ToString()
s = o.ToString(s)

这两个 ToString 方法都定义在 Class2 的基类中,或者基类的基类中,ReSharper 似乎找不到它们,认为它们不存在,并将其标记为编译错误,即使它构建和运行都很好.

4

1 回答 1

0

在 Visual Studio 中,如果您导航到 ReSharper->Options,然后在代码检查下选择检查严重性,您应该能够通过选择项目右侧的“不显示”来关闭警告。请参阅下面的屏幕截图。话虽如此,我无法找到问题文本中提到的具体错误,希望你能有更好的运气。

ReSharper 选项

于 2013-04-04T10:52:20.087 回答