2011-08-02 81 views
1

我試圖找出爲什麼這個工程這是多重繼承嗎?或繼承/實現像C#的其他語法?

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,谷歌,MSDN和我找不到繼承,

請一些大師請提供一些信息,這是什麼完成(如果你可以提供一個MSDN鏈接會很好),因爲我不喜歡做的事情,我不明白(因爲它可以在未來導致的問題,你可以工作:d)

希望這個問題是不是太noobish:d

+0

該死,不能回答我自己的職位,因爲我沒有足夠的「代表」 但這裏是我的答案 http://stackoverflow.com/questions/5682227/vb-net-在接口中的多繼承 我知道.NET不支持多繼承,因此這個想法只是困惑了我,所以它似乎支持多繼承,但只有在接口中,它只是類不支持多繼承。 希望關於Inherits關鍵字的MSDN文章能夠解釋這種情況。 Bah,對於浪費的問題感到抱歉,似乎我的搜索關鍵字在我發佈之前沒有得到正確的結果。 – AussieALF

+0

MSDN確實解釋了這種情況:請參閱[關於Inherits關鍵字的說明](http://msdn.microsoft.com/en-us/library/1yk8s7sk(v = vs.71).aspx)。 (雖然說如果還有其他一些文章甚至沒有提到它,我也不會感到驚訝) – nnnnnn

+0

乾杯隊友,你的權利,現在我得到的鏈接,他們只是把我打在臉上,當時我試圖通過一個例子來識別它,即。繼承IType,IType2,所以我可以找出它是什麼(相信MI不支持在.NET中),所以是的,與blinkers搜索沒有幫助我很多:P歡呼 – AussieALF

回答

2

Microsoft docs確實提到它:

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

+0

啊,但在C#中,沒有例子; D無論如何感謝鏈接 – AussieALF

+0

它說我引用VB頁面上的同樣的事情(請參閱頁面頂部的標籤)。鏈接對於所有標籤都是相同的。 – hatchet

+0

都很好,感謝鏈接,每天我們放下代碼,我們學到了一些新東西; D – AussieALF

1

是的,這是多重繼承

...接口。

這意味着任何IFullServiceIS A(n)的 IVersionService。 (當你看到「任何A也是B」時,這就是「A從B繼承」的意思。)

接口繼承沒有像多重繼承那樣的問題,所以MI是允許的。 :)