我有一个继承自基类的类,并实现以下内容......
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用于调试和发布编译。不理想,但总比在IDE中看到警告要好。
如果某人有更好的解决方案,请添加它,我很乐意尝试标记答案。
答案 0 :(得分:9)
仅在基类中使用'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
答案 1 :(得分:1)
您可以使用supress警告来抑制一个警告。请参阅此处了解more如何获取。 您也可以使用SuppressMessage Attribute。
答案 2 :(得分:0)
如果您无权访问基类,因此无法使方法成为可覆盖,则可以将<NoWarn>42015</NoWarn>
添加到项目文件中。
答案 3 :(得分:-1)
在项目的属性上,转到构建选项卡并使用抑制警告文本框。
答案 4 :(得分:-1)
将关键字Shadows添加到函数定义中。
Public Shadows Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
答案 5 :(得分:-1)
而不是压制警告,你不应该修理它吗?假设基础是可覆盖的,
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#程序员。如果没有,请发表评论,我会更新。)