對於這個問題我有這些類:VB泛型「不能轉換」
Public MustInherit Class BaseLeaf(Of T)
Implements IBaseLeaf
// etc
Public Class WebsiteLeaf
Inherits BaseLeaf(Of Headline)
// etc
Public Class WebsiteCollection
Inherits BaseCollection(Of WebsiteLeaf)
// etc
Public Class SubscriptionList
Private mCollection As BaseCollection(Of IBaseLeaf)
Public Sub LoadSubscriptions(ByVal collection As BaseCollection(Of IBaseLeaf))
mCollection = collection
End Sub
在主類我想調用下面的函數:
Private Sub FetchSubscriptions(ByVal websites As WebsiteCollection)
gUser.SubscriptionList.LoadSubscriptions(websites)
// code
End Sub
這將訪問LoadSubscriptions與傳遞「網站」變量。
正如你所看到的LoadSubscriptions需要一個BaseCollection(IBaseLeaf)。
「網站」變量是一個WebsiteCollection,它是BaseCollection(Of WebsiteLeaf(標題))。
現在我收到錯誤:類型'WebsiteCollection'的值無法轉換爲'BaseCollection(Of IBaseLeaf)'。
我在做什麼錯在這裏?
您可能想了解[泛型中的協變和逆變](http://msdn.microsoft.com/zh-cn/library/dd799517.aspx) – MarkJ 2012-03-08 20:21:33