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


Ограничение типа <выражение> не является классом или интерфейсом

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

Type constraint '<expression>' is not a class or interface

Список ограничений содержит выражение, которое является недопустимым ограничением для параметра типа.

Список ограничений устанавливает требования в отношении аргумента типа, переданного параметру типа. Можно задать следующие требования в любом сочетании:

  • Аргумент типа должен реализовывать один или несколько интерфейсов.

  • Аргумент типа должен наследоваться не более чем от одного класса.

  • Аргумент типа должен предоставлять конструктор без параметров, к которому создающий код может получить доступ

  • Аргумента типа должен быть ссылочным типом, или он должен быть типом значения

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

Исправление этой ошибки

  • Убедитесь, что выражение и его элементы написаны правильно.

  • Если выражение не входит в ранее приведенный список требований, удалите его из списка ограничений.

  • Если выражение ссылается на интерфейс или класс, убедитесь, что компилятор имеет доступ к интерфейсу или классу. Возможно, требуется уточнить его имя или требуется добавить ссылку на проект. Дополнительные сведения см. в подразделе "Ссылки в проектах" раздела Разрешение ссылки, когда несколько переменных имеют одинаковые имена.

См. также

Задачи

Практическое руководство. Уточнение имени объявляемого элемента

Практическое руководство. Добавление и удаление ссылок в Visual Studio (C#)

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

Универсальные типы в Visual Basic

Типы значений и ссылочные типы