我正在尝试通过在VB.NET中为类实现IComparable接口来将Implementing generic IComparer in VB的答案应用于我的项目。该答案中GenericComparer的部分编译得很好,但是我的特定对象上的IComparable接口不会通过编译器。
Public Class RowAndRanking
Implements IComparable(Of RowAndRanking)
Public html As String
Public rank As Double
Public Function CompareTo(other As RowAndRanking) As Integer
Return Math.Round(Me.rank - other.rank)
End Function
End Class
编译器一直坚持认为“Class'RowAndRanking'必须为'System.IComparable(Of RowAndRanking)'接口实现'Function CompareTo(其他As RowAndRanking)As Integer'。”,但看着我的代码,我可以看到方法签名。此外,如果我去我试图在这些对象的列表上运行排序的地方,我可以输入:
Dim row as RowAndRanking = new RowAndRanking
row.CompareTo(...
Visual Studio的代码完成后会选择方法签名。
我尝试过清理和重建项目,但问题仍然存在。我已经尝试将其更改为使用非泛型比较器解决方案,但编译器仍然没有看到CompareTo方法。这应该很简单,但编译器只是看不到该函数。这有发生在其他人身上吗?还有其他我可以试试的吗?
答案 0 :(得分:3)