Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È stata chiamata una routine generica senza fornire un elenco di argomenti di tipo e l'inferenza del tipo non riesce per uno degli argomenti di tipo.
Di norma, quando si chiama una routine generica, si fornisce un argomento di tipo per ogni parametro di tipo definito dalla routine. È però possibile omettere completamente l'elenco degli argomenti di tipo. In questo caso, il compilatore prova a dedurre il tipo di ogni argomento di tipo dal contesto della chiamata. Per altre informazioni, vedere "Inferenza di tipi" in Generic Procedures in Visual Basic.
Una delle possibili cause degli errore di inferenza del tipo è la mancata corrispondenza di dimensioni tra un parametro di tipo e il tipo chiamante. Il codice seguente illustra questo concetto.
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
Nel codice 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
Verificare che i tipi degli argomenti normali siano tali che l'inferenza del tipo sia coerente con i parametri di tipo dichiarati per la routine generica.
oppure
Chiamare la routine generica con un elenco completo di argomenti di tipo in modo da non rendere necessaria l'inferenza del tipo.