2013-02-24 9 views
0

Кто-нибудь объяснит мне, почему в тексте CollectionBase класс (в System.Collections, который происходит от IList), у него нет 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'. Так в чем вопрос? –

+0

Thats точно, что я ищу, но когда я проверяю определение CollectionBase i can not see no IList implementation ... – Mikatsu

+0

Где вы ищете _definition_ of CollectionBase? Я всегда смотрю сначала в MSDN: http://msdn.microsoft.com/en-us/library/system.collections.collectionbase.aspx –

ответ

2

Он реализует IListexplicitly, так что вам нужно, чтобы бросить свой CollectionBase экземпляр IList для доступа к этим членам.

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

Когда я проверяю определение для CollectionBase, я вижу, что не из них, они должны быть явно определены в CollectionBase или нет? – Mikatsu

+0

@ Mikatsu - Я не уверен, откуда вы получаете определение, но если вы посмотрите [здесь] (http://msdn.microsoft.com/en-us/library/system.collections.collectionbase.aspx) и прокрутите вниз до «Явные реализации интерфейса», вы увидите, что он явно реализует «IList» и «ICollection». – Lee

+0

Я добавил изображение на стартовой странице, почему он отличается от msdn? Я использую F12 в Visual Studio. – Mikatsu