我想弄清楚为什么会有效
Public Interface IFullService
Inherits ISerializableObjectLayerService, IVersionService
<OperationContract()>
Function StartTrac() As OperationResult(Of Boolean)
<OperationContract()>
Function StopTrac() As OperationResult(Of Boolean)
<OperationContract()>
Function IsTracRunning() As OperationResult(Of Boolean)
End Interface
接口不允许你指定它“实现”另一个接口,但在我的情况下,我需要声明我有两个接口,只是偶然我把逗号放入并进入另一个接口,构建和运行我的单元测试,它的工作原理......
以前我一直在尝试遵循单个继承树,例如
<ServiceContract()>
Public Interface IFullService
Inherits IVersionService
<OperationContract()>
Function StartTrac() As OperationResult(Of Boolean)
<OperationContract()>
Function StopTrac() As OperationResult(Of Boolean)
<OperationContract()>
Function IsTracRunning() As OperationResult(Of Boolean)
End Interface
<ServiceContract()>
Public Interface IVersionService
Inherits ISerializableObjectLayerService
<OperationContract()>
Function GetVersionsSince(ByVal VersionNumber As Long, IncludeBetas As Boolean) As OperationResult(Of Core.Setting.MemoryBmsReleaseInfo())
End Interface
正如您在此处所见,IFullService继承了IVersionService,然后继承IVersionService。但是在我的情况下,我需要一种方法来实现IVersionService而不实现ISerializableObjectLayerService,这就是我的“工作”解决方案。
不幸的是,我无法弄清楚如何确定这是做什么的。我搜索了stackoverflow,google,msdn,我找不到使用Inherits的例子,
有些大师可以提供一些信息,说明这是完成的(如果你能提供MSDN链接会很棒),因为我不喜欢做一些我不理解的事情(因为它可能导致问题)在将来你可以解决:D)
希望这个问题不太苛刻:D
答案 0 :(得分:2)
Microsoft文档确实提到了它:
http://msdn.microsoft.com/en-us/library/ms173156.aspx
接口本身可以从多个接口继承。
编辑:Visual Studio的早期版本的另一个链接(所有VB,带示例),但信息仍然适用。
http://msdn.microsoft.com/en-us/library/aa711871%28v=vs.71%29.aspx
答案 1 :(得分:1)
这意味着任何IFullService
IS A(n) IVersionService 。 (当你看到“任何A也是B”时,那就是“A继承自B”的含义。)
接口继承没有像多继承这样的问题,所以允许使用MI。 :)