这是 .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
?