LINQ コレクションで使用する単純な IEqulityComparer を実装しようとしています。私は次のコードを作成しましたが、これは議論のために最も単純な形式に縮小されています...
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' (または 'Equals') は、基本クラス 'Object' のオーバーライド可能なメソッドをシャドウします。基本クラスのメソッドをオーバーライドするには、このメソッドを 'Overrides と宣言する必要があります。 '."
ただし、それらをオーバーライドとして宣言すると、「関数 'GetHashCode' は基本クラスの関数をオーバーライドしないため、オーバーライドとして宣言できません。」というエラーが表示されます。
また、「Implements」行で「getHashCode」を実装する必要があるというコンパイラ エラーが発生していますが、これは最初の問題の結果であると推測しています。
私のすべての調査は、私が大丈夫であることを示しています - 誰か手がかりを教えてください?