我想實現一個簡單的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」,但我認爲這是第一個問題的結果。
我的所有研究都表明我應該沒問題 - 任何人都有任何線索嗎?