LINQコレクションで使用する単純なIEqulityComparerを実装しようとしています。私は私が持っている問題は 『GetHashCodeメソッド』の両方の機能がコンパイラの警告」機能を投げることである(または 『等しい』)...カスタムGeneric.IEqualityComparer(Of 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
を議論の目的のためにその最も単純な形に還元され、次のコードを書かれています基本クラス 'Object'でオーバーライド可能なメソッドをシャドウします。基本クラスメソッドをオーバーライドするには、このメソッドを 'Overrides'と宣言する必要があります。
しかし、それらを上書きとして宣言すると、「関数 'GetHashCode'は、基本クラスの関数をオーバーライドしないため、オーバーライドを宣言できません」というエラーが表示されます。
「Implements」行で「getHashCode」を実装する必要があるというコンパイルエラーも発生していますが、これは最初の問題の結果であると推測します。
すべての私の研究は私が大丈夫でなければならないことを示しています - 誰も手がかりを得ていませんか?