Поделиться через


Оператор For Each для типа <имяТипа> неоднозначен, поскольку тип реализует несколько экземпляров System.Collections.Generic.IEnumerable (Of T)

Обновлен: Ноябрь 2007

'For Each' on type '<typename>' is ambiguous because the type implements multiple instantiations of 'System.Collections.Generic.IEnumerable(Of T)'

Оператор For Each использует переменную-итератор, который имеет несколько методов GetEnumerator.

Переменная-итератор должна иметь тип, который реализует интерфейс System.Collections.IEnumerable или System.Collections.Generic.IEnumerable<T> из пространств имен Collections в .NET Framework. Класс может реализовывать несколько сконструированных универсальных интерфейсов, используя разные аргументы типа при каждом конструировании. Если такой класс используется для объявления переменной-итератора, то эта переменная будет содержать несколько методов GetEnumerator. В этом случае Visual Basic не сможет выбрать вызываемый метод.

Идентификатор ошибки: BC32096

Для исправления этой ошибки выполните следующие действия:

  • Используйте оператор DirectCast или TryCast для приведения типа переменной-итератора к интерфейсу, в котором определен желаемый метод GetEnumerator.

См. также

Основные понятия

Примеры реализации интерфейсов в Visual Basic

Ссылки

Инструкция For Each... Next (Visual Basic)