2013-02-24 60 views
0

有人會向我解釋爲什麼在抽象CollectionBase類(在System.CollectionsIList派生)它沒有IList成員實現?我認爲這是強制性的。CollectionBase否IList實現?

System.Collection.CollectionBase

+1

[** It **](http://msdn.microsoft.com/en-us/library/system.collections.collectionbase.aspx)實現了例如IList.Add,IList.Contains,IList.IndexOf,IList.Insert,IList.IsFixedSize,IList.IsReadOnly,IList.Item,IList.Remove'。那麼問題是什麼? – 2013-02-24 21:56:04

+0

這就是我正在尋找,但是當我檢查CollectionBase定義我不能看到沒有IList實現... – Mikatsu 2013-02-24 22:15:12

+0

你在尋找'CollectionBase'的_definition_?我總是先看看MSDN:http://msdn.microsoft.com/en-us/library/system.collections.collectionbase.aspx – 2013-02-24 22:16:10

回答

2

它實現IListexplicitly,所以你需要將自己的CollectionBase實例轉換到IList訪問的成員。

IList list = (IList)collectionBase; 
list.Add(...); 
+0

當我檢查CollectionBase的定義時,我看到它們不是它們應該在CollectionBase中顯式定義或不是? – Mikatsu 2013-02-24 22:10:33

+0

@Mikatsu - 我不知道你從哪裏得到定義,但如果你看[這裏](http://msdn.microsoft.com/en-us/library/system.collections.collectionbase.aspx)並向下滾動到「顯式接口實現」,您會看到它明確實現了「IList」和「ICollection」。 – Lee 2013-02-24 22:18:22

+0

我已經在開始帖子添加了一個圖像爲什麼它不同於msdn?我在Visual Studio中使用F12。 – Mikatsu 2013-02-24 22:30:55