該問題的第一部分已在其他帖子中介紹過,但我沒有看到一個示例。在實現泛型接口和非泛型對象時,我通常會使用它。例如,如果我想創建一個通用的ObservableList,我想要實現兩個IList接口。
Public Class ObservableList(Of T)
Implements INotifyCollectionChanged,
IList,
IList(Of T)
End Class
當兩個IList都實現時,我們會得到很多重複函數。一些共享相同的簽名,並可以實現清晰等IList功能。但是一些非泛型函數處理對象而不是泛型。所以對於Add函數,我會讓這兩個實現都能正常工作,但將非通用版本設置爲private,以便使用該類更容易。
Public Sub Add(item As T) Implements System.Collections.Generic.ICollection(Of T).Add
'Add item to collection
End Sub
Private Function Add1(item As Object) As Integer Implements System.Collections.IList.Add
'Add item to collection
End Function
這樣,類可以被傳遞並用作一個IList,但編碼器獲得,而不可能過載雜波用它作爲一個IList(OF T)。
因此,代碼的作品?我很驚訝。看起來與接口的想法非常相反。 – jcollum 2009-01-12 17:48:35