Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C#: наследование от IEnumerable<T>

4.3K
02 мая 2007 года
VasAlVit
33 / / 03.09.2004
Здравствуйте.

Visual Studio 2005, C#, .NET Framework 2.0

Есть класс - список объектов:

//------------------------------------------------------------------------
class ContactList : IEnumerable<Contact>
{
private List<Contact> m_contacts;
...
public IEnumerator<Contact> GetEnumerator()
{
return m_contacts.GetEnumerator;
};
...
}
//------------------------------------------------------------------------

При компиляции компилятор выдаёт ошибку:
error CS0536: 'ContactList' does not implement interface member 'System.Collections.IEnumerable.GetEnumerator()'. 'ContactList.GetEnumerator()' is either static, not public, or has the wrong return type.

Пробовал менять public, ставить virtual, override ... Появляются другие ошибки, но класс не компилируется.

Буду признателен, если кто-нибудь объяснит почему.

Вот требования, которые я хочу видеть в классе:
1. Класс должен поддерживать перебор элементов при помощи foreach.
2. Класс должен поддерживать только перебор элементов (без удаления, добавления...)

Ещё вижу вариант - произвести от List<Contact> и переопределить ненужные методы через protected. Но этот вариант мне не очень нравится.

ps. Не скажу что я спец по C#, но C++ знаю хорошо, и с шаблонами там разобрался. А здесь... Вообщем, I need Help.
5
02 мая 2007 года
hardcase
4.5K / / 09.08.2005
 
Код:
public class ContactList : IEnumerable<Contact> {
    List<Contact> m_list;
    IEnumerator<Contact> IEnumerable<Contact>.GetEnumerator() {
        return m_list.GetEnumerator();
    }
    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {
       return m_list.GetEnumerator();
   }
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог