Pour le problème que j'ai ces classes:VB Generics « ne peut pas être converti »
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
dans la classe principale, je suis en train d'appeler la fonction suivante:
Private Sub FetchSubscriptions(ByVal websites As WebsiteCollection)
gUser.SubscriptionList.LoadSubscriptions(websites)
// code
End Sub
Cela accès LoadSubscriptions avec passer la variable "sites Web". Comme vous pouvez le voir LoadSubscriptions s'attend à une BaseCollection (Of IBaseLeaf).
La variable "websites" est un objet WebsiteCollection, qui est un objet BaseCollection (Of WebsiteLeaf (Of Headline)).
Maintenant j'obtiens l'erreur: La valeur du type 'WebsiteCollection' ne peut pas être convertie en 'BaseCollection (Of IBaseLeaf)'.
Qu'est-ce que je fais mal ici?
Vous aimeriez en savoir plus sur [covariance et contravariance dans les génériques] (http://msdn.microsoft.com/en-us/library/dd799517.aspx) – MarkJ