我想实现一个简单的IEqulityComparer与LINQ集合使用。我写了下面的代码减少到最简单的讨论目的形式...自定义Generic.IEqualityComparer(的T) - 编译器错误
Public Structure bob
Dim SiteID As Integer
Dim fred As String
End Structure
Public Class insCompare
Implements System.Collections.Generic.IEqualityComparer(Of bob)
Public Function Equals(ByVal x As bob, ByVal y As bob) As Boolean
Return IIf(x.SiteID = y.SiteID, True, False)
End Function
Public Function GetHashCode(ByVal x As bob) As Integer
Return x.SiteID.GetHashCode()
End Function
End Class
我已经是两个函数抛出编译器警告“功能‘的GetHashCode’(或‘等于’)问题在基类“Object”中隐藏一个可覆盖的方法。要覆盖基类方法,必须声明此方法为'Overrides'。但是,如果我将它们声明为Overrides,则会出现错误“function'GetHashCode'不能被声明为Overrides,因为它不会覆盖基类中的函数。”
我也遇到了“实现”行上的编译器错误,必须实现“getHashCode”,但我认为这是第一个问题的结果。
我的所有研究都表明我应该没问题 - 任何人都有任何线索吗?