Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > ICollection<T>. проблема с IEnumerable


Автор: _hunter 28.3.2008, 17:19
Добрый день.

Делаю свою коллекцию. Но есть проблема с IEnumerable<T>, IEnumerable: им обоим нужно реализовать метод GetEnumerator. У Троелсена в "Pro C# 2005 and the .NET 2.0 Platform" на єтот счет написанно:
Код

// IEnumerable<T> extends IEnumerable, therefore
// we need to implement both versions of GetEnumerator().
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{ return arCars.GetEnumerator(); }
IEnumerator IEnumerable.GetEnumerator()
{ return arCars.GetEnumerator(); }

я пишу:
Код

            IEnumerator<T> IEnumerable<T>.GetEnumerator ()
            {
                return _objects.GetEnumerator();
            }

            IEnumerator IEnumerable.GetEnumerator ()
            {
                return _objects.GetEnumerator();
            }

на что получаю (на строке "IEnumerator IEnumerable.GetEnumerator ()"):
"Using the generic type 'System.Collections.Generic.IEnumerator<T>' requires '1' type arguments"

Что тут неправильно/как это исправить?

С уважением...

Автор: Optimus 28.3.2008, 20:58
Цитата(_hunter @  28.3.2008,  17:19 Найти цитируемый пост)
на что получаю (на строке "IEnumerator IEnumerable.GetEnumerator ()"):
"Using the generic type 'System.Collections.Generic.IEnumerator<T>' requires '1' type arguments"

System.Collections для IEnumerator у вас подключён ?

Автор: Dennnis 28.3.2008, 23:35
Цитата

            IEnumerator<T> IEnumerable<T>.GetEnumerator ()
            {
                return _objects.GetEnumerator();
            }

Вместо T нужно писать тип который вы используете в качестве элемента коллекции.

Автор: yar 29.3.2008, 11:09
Цитата

Вместо T нужно писать тип который вы используете в качестве элемента коллекции.


Если сам класс -- обобщённый, например:
Код

class MyClass<T> : IEnumerable<T>, IEnumerable
{ 
            IEnumerator<T> IEnumerable<T>.GetEnumerator ()
            {
                   return _objects.GetEnumerator();
            }
...
...
 }

то тут c T всё в порядке..

_hunter, приведи больше кода..

Автор: _hunter 31.3.2008, 11:17
таки да. проблема в System.Collections была

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)