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


Операнды оператора TryCast должны быть параметрами типа, ограниченными классом, но <имяПараметраТипа> не ограничен классом

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

'TryCast' operands must be class-constrained type parameters, but '<typeparametername>' has no class constraint

Оператор TryCast используется с операндом параметра типа, который может не являться ссылочным типом.

TryCast работает только со ссылочными типами, такими как классы или интерфейсы. При передаче параметра типа в качестве аргумента для TryCast необходимо ввести ограничение, что параметр типа должен иметь ссылочный тип. Можно сделать это, включив в список ограничений параметров типа одну или несколько следующих:

  • Одно или несколько имен интерфейса (аргумент типа должен реализовывать их все)

  • Только одно имя класса (от него наследуется аргумент типа)

  • Ограничение New (Visual Basic) (аргумент типа должен предоставлять конструктор без параметров, к которому может иметь доступ код создания, и поэтому он должен являться классом)

  • Ограничение Class (Visual Basic) (аргумент типа должен являться ссылочным типом)

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

Чтобы исправить данную ошибку

  • Если требуется передать этот параметр типа в TryCast, следует ввести для него одно или несколько ограничений из предыдущего списка.

  • Параметр типа можно использовать с TryCast, только если он является ссылочным типом. Однако, если он не является ссылочным типом, можно использовать Функция CType.

См. также

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

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

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

Расширяющие и сужающие преобразования

Явные и неявные преобразования

Ссылки

Список типов