これは .NET4 の Vb ですが、C# でも同じ問題があります。ここでは説明しませんが、インターフェイスを使用する必要があります。
これは機能しますが、インターフェースを使用しません:
Public class PersonList
Inherits List(of Person)
end class
Dim MyPeople as new PersonList
MyPeople.AddRange(SomeList)
依存性注入を使用してこれらのクラスをテストできるようにするため、IPerson や IPersonList などのインターフェイスを使用する必要があります。
PersonList のインターフェイスを作成すると、AddRange が表示されなくなりました。
インターフェイスを使用した PersonList の新しいバージョン
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
AddRange を呼び出そうとするまで、すべてがビルドされ、期待どおりに動作します。
Dim MyPeople as IPersonList = new PersonList
MyPeople.AddRange(SomeList) 'BUILD ERROR AddRange is not a member of IPersonList
おそらくIPersonList
、 の実装を持つものから継承する必要がありAddRange
ます。ただし、インターフェイスが継承できない のAddRange
一部です。List(of T)
では、リスト インターフェイスを公開するにはどうすればよいAddRange
でしょうか。