Операнды оператора 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
Типы значений и ссылочные типы
Расширяющие и сужающие преобразования
Явные и неявные преобразования