Partilhar via


Os operandos 'TryCast' devem ser parâmetros de tipo com restrição de classe, mas '<typeparametername>' não tem nenhuma restrição de classe

O operador TryCast é usado com um operando de parâmetro de tipo que não são se pode garantir que seja um tipo de referência.

TryCast funciona somente em tipos de referência, como classes ou interfaces.Quando você passar um parâmetro do tipo como um argumento para TryCast, você deve restringir esse parâmetro do tipo para ser um tipo de referência.Você pode fazer isso, incluindo um ou mais dos seguintes na lista de restrição de parâmetro do tipo:

  • Um ou mais nomes de interface (o argumento do tipo deve implementar todas elas)

  • No máximo um nome de classe (o argumento do tipo deve herdar a partir dele)

  • A restrição Novo (Visual Basic) (o argumento do tipo deve expor um construtor sem parâmetros que que o código de criação possa acessar e, portanto, ele deve ser uma classe)

  • A restrição Classe (Visual Basic) (o argumento de tipo deve ser um tipo de referência)

ID de erro: BC30793

Para corrigir este erro

  • Se você precisar passar este parâmetro do tipo para TryCast, restringi-lo com uma ou mais das restrições na lista anterior.

  • Se você não pode solicitar que o parâmetro do tipo aceite apenas um tipo de referência, você não pode usá-lo com TryCast.Talvez seja possível usar o CType Function em vez disso.

Consulte também

Conceitos

Tipos genéricos no Visual Basic

Tipos de valores e tipos de referências

Conversões Ampliadoras e Redutoras

Conversões explícita e implícita 

Referência

Lista de tipos