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


Автор: leopard678 25.9.2006, 08:48
В классе своего массива реализую интерфейс IList

Для метода GetEnumerator() как вернуть объект-перечислитель?

Код

public IEnumerator<ItemType> GetEnumerator()
        {
            return ????
        }

Автор: Wanderer2019 25.9.2006, 09:36
Код

public class MyClass
{
//..............//
}
public class Iterator:IEnumerator,IEnumerable
{
 private MyClass[] ClassArray;
 public IEnumerator GetEnumerator()
 {
 return (IEnumerator)this;
 }
}

Автор: leopard678 25.9.2006, 10:21
У меня:

Код

public class CArrayList<ItemType> : IList<ItemType> 
    {
               ..........................

      public IEnumerator GetEnumerator()
        {
            return (IEnumerator)this;
        }
   }


Выдаёт ошибку:
Error    1    'ClassArrayList.CArrayList<ItemType>' does not implement interface member 'System.Collections.Generic.IEnumerable<ItemType>.GetEnumerator()'. 'ClassArrayList.CArrayList<ItemType>.GetEnumerator()' is either static, not public, or has the wrong return type.    C:\Documents and Settings\Visual Studio 2005\Projects\ClassArrayList\ClassArrayList\CArrayList.cs    10    18    ClassArrayList

 smile 

Автор: Wanderer2019 25.9.2006, 10:58
так я чего то не совсем понимаю... у тебя класс наследуется от IList, а получить ты хочешь IEnumerator.

Я так понял тебе нужно нечто вроде следующего:
Код

public class CArrayList: System.Collections.CollectionBase,System.Collections.IEnumerator,System.Collections.IEnumerable
{
}

Автор: leopard678 25.9.2006, 11:10
mr.DUDA подсказал:

  public IEnumerator<ItemType> GetEnumerator()
        {           
            yield return m_pStartList.GetData();
        }

и правой кнопкой мыши на IList<...>, выбрать Implement Interface
всё скомпилировалось.

Спасибо! smile 

Автор: mr.DUDA 25.9.2006, 14:32
Только не забудь, что у тебя дефолтная реализация интерфейса - там везде торчат throw new NotImplementedException-ы.

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