我正在使用 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 似乎找不到它们,认为它们不存在,并将其标记为编译错误,即使它构建和运行都很好.