我有一个从基类继承并实现以下内容的类...
Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
现在它继承的基类也实现了这个 System.IComparable.CompareTo 所以我收到以下编译器警告:
警告:“System.IComparable.CompareTo”已由基类实现。重新实现假定的功能。
我对此很满意,所以我的问题是如何仅针对此功能抑制此警告(即并非所有此类警告)。
澄清:
解决方案:
我希望使用 System.Diagnostics.CodeAnalysis.SuppressMessage 属性或类似 C# 的 #pragma 的属性,但看起来没有办法抑制单行的警告。 不过,有一种方法可以关闭该项目的此消息,而无需关闭所有警告。
我手动编辑了 .vbproj 文件,并将 42015 包含在节点中以进行 Debug 和 Release 编译。 不太理想,但比总是在 IDE 中看到警告要好。
如果有人有更好的解决方案,请添加它,我很乐意尝试标记答案。
仅在基类中使用“Implements”:
基类中的签名:
Public Overridable Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
继承类中的签名:
Public Overrides Function CompareTo(ByVal obj As Object) As Integer
您可以使用抑制警告来抑制一个警告。请参阅此处了解如何操作的更多。 您还可以使用 SuppressMessage 属性。
如果您无权访问基类,因此无法使该方法可重写,您可以将
<NoWarn>42015</NoWarn>
添加到项目文件中。
将关键字 Shadows 添加到函数定义中。
Public Shadows Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
与其抑制警告,不如修复它?假设基础是可重写的,
Public Overrides Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
如果没有,那就阴影它,
Public Shadows Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
(我认为这是正确的,我是一个C#程序员。如果不对,请评论,我会更新。)
在项目的属性上,转到构建选项卡并使用抑制警告文本框。