У меня есть универсальный класс, который реализует IListDual счетчиков, вторые один посредством столкновений Интерфейс- типа по реализации
public class ListBase<T>: IList<T>, IListBase{
IEnumerator<T> GetEnumerator(){ ....
System.Collections.IEnumerator GetEnumerator(){ return GetEnumerator();}
}
IListBase представляет собой интерфейс я использую для доступа к методам этого класса в случаях, когда я не знать тип T во время выполнения.
Мне нужно реализовать второй Enumerator через этот интерфейс IListBase, который будет выполнять итерацию членов моего класса и вернуть их в качестве базового типа, который будут реализовывать все члены.
Я пытался имея IListBase осуществить свою специфическую Enumerator:
public interface IListBase: IEnumerable<MemberBaseType> { ....
Но это взрывает из-за того, что Т и MemberBaseType может быть таким же, в некоторых случаях. Даже добавление членов перечислителя в интерфейс, а затем использование явных объявлений не помогает этой проблеме.
Затем я попытался добавить еще один метод для вызова для только получать конкретный IEnumerator, но компилятор потом жалуется, не найдя публичный метод GetEnumerator для использования с этим типом ...
Любых рекомендаций по добавлению этого вторичного нумератора так они не сталкиваются друг с другом?
Марк, я не совсем уверен, почему, но когда я добавляю метод (или свойство, как вы здесь), который возвращает IEnumerable, компилятор жалуется на IEnumerable не содержит метод GetEnumerator() ... не уверен, что происходит? –
Сообщение, подобное этому * обычно * означает, что я выбрал неверную опцию в resharper, и он создал тип * new * где-то (вместо добавления правильной директивы using) ... возможно, вы захотите дважды проверить это? –
Я действительно закончил добавление небольшого класса, который выводит IEnumerable и теперь возвращаю его из вызова метода. Не красиво, но, похоже, работает. Спасибо за помощь! –