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