Gli operandi 'TryCast' devono essere parametri di tipo vincolati da classe, ma '<nometipoparametro>' non ha vincoli di classe

Aggiornamento: novembre 2007

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

L'operatore TryCast viene utilizzato con un operando del parametro di tipo che potrebbe non essere un tipo di riferimento.

TryCast opera solo sui tipi di riferimento, quali classi o interfacce. Quando si passa un parametro di tipo come argomento a TryCast, è necessario vincolare quel parametro di tipo in modo che sia un tipo di riferimento. Per effettuare questa operazione è necessario includere una o più delle seguenti opzioni nell'elenco dei vincoli dei parametri di tipo:

  • Uno o più dei nomi di interfaccia (l'argomento di tipo deve implementarli tutti)

  • Un nome di classe al massimo (l'argomento di tipo deve ereditare da questo)

  • Il vincolo New (Visual Basic) (è necessario che l'argomento di tipo esponga un costruttore senza parametri accessibile dal codice di creazione e quindi deve essere una classe)

  • Il vincolo Class (Visual Basic) (l'argomento di tipo deve essere un tipo di riferimento)

ID errore: BC30793

Per correggere l'errore

  • Se è necessario passare questo parametro di tipo a TryCast, vincolarlo con uno o più vincoli dell'elenco precedente.

  • Se non si è in grado di richiedere il parametro di tipo per accettare solo un tipo di riferimento, non sarà possibile utilizzarlo con TryCast. Dovrebbe invece essere possibile utilizzare la Funzione CType.

Vedere anche

Concetti

Tipi generici in Visual Basic

Tipi valore e tipi riferimento

Conversioni di ampliamento e restrizione

Conversioni implicite ed esplicite

Riferimenti

Elenco dei tipi