Impossibile dedurre il parametro di tipo '<nomeparametroditipo>' per '<nomeroutinegenerica>'

Aggiornamento: novembre 2007

Type parameter '<typeparametername>' for '<genericprocedurename>' cannot be inferred

È stata chiamata una routine generica senza la fornitura di un elenco di argomenti di tipo. Inferenza di tipo non completata per uno degli argomenti di tipo.

Durante la chiamata a una routine generica viene generalmente fornito un argomento di tipo per ciascun parametro di tipo definito dalla routine. Tuttavia, è possibile omettere completamente l'elenco degli argomenti di tipo. In questo caso, il compilatore tenta di dedurre il tipo di ciascun argomento di tipo dal contesto della chiamata. Per ulteriori informazioni, vedere "Inferenza di tipi" in Routine generiche in Visual Basic.

Una delle possibili cause di errore di inferenze di tipo è la mancata corrispondenza di dimensioni tra un parametro di tipo e il tipo chiamante. Questa condizione è illustrata nel codice che segue.

Public Sub displayLargest(Of t As IComparable)(ByVal arg() As t)
    ' Insert code to find and display the largest element of arg().
End Sub
Public Sub callGenericSub()
    Dim testValue As Integer
    findLargest(testValue)
    Dim testMatrix(,) As Integer
    findLargest(testMatrix)
End Sub

Nell'esempio precedente, le due chiamate a findLargest generano questo errore perché il parametro di tipo t richiede una matrice unidimensionale, mentre il compilatore deduce dalle chiamate che gli argomenti di tipo sono costituiti da una matrice scalare (testValue) e una matrice bidimensionale (testMatrix).

ID errore: BC32050

Per correggere l'errore

  • Assicurarsi che i tipi degli argomenti normali siano tali che l'inferenza di tipo sia coerente con i parametri di tipo dichiarati per la routine generica.

    -oppure-

  • Effettuare la chiamata alla routine generica con un elenco completo di argomenti di tipo in modo da non rendere necessaria l'inferenza di tipo.

Vedere anche

Concetti

Tipi generici in Visual Basic

Routine generiche in Visual Basic

Riferimenti

Elenco dei tipi