Il s'agit de Vb en .NET4, mais j'ai le même problème en C#. Nous devons utiliser des interfaces pour des raisons que je ne détaillerai pas.
Cela fonctionne, mais n'utilise pas les interfaces :
Public class PersonList
Inherits List(of Person)
end class
Dim MyPeople as new PersonList
MyPeople.AddRange(SomeList)
J'ai besoin d'utiliser des interfaces telles que IPerson et IPersonList car nous utilisons l'injection de dépendances pour permettre le test de ces classes.
Lorsque je crée une interface pour PersonList, je ne vois plus AddRange.
Nouvelle version de PersonList utilisant une interface
Public class PersonList
Inherits List(IPerson)
Implements IList(Of IPerson)
Implements IPersonList
end class
Interface for the list:
Public Interface IPersonList
Inherits IList(Of IPerson)
end interface
Tout se construit et fonctionne comme prévu jusqu'à ce que j'essaie d'appeler AddRange :
Dim MyPeople as IPersonList = new PersonList
MyPeople.AddRange(SomeList) 'BUILD ERROR AddRange is not a member of IPersonList
Probablement IPersonList
doit hériter de quelque chose qui a une implémentation de AddRange
. Mais AddRange
fait partie de List(of T)
dont une interface ne peut hériter.
Alors comment faire pour que mon interface de liste expose AddRange
?