Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Obecná procedura je volána bez zadání seznamu argumentů typu a odvození typu selže pro jeden z argumentů typu.
Při volání obecné procedury obvykle zadáte argument typu pro každý parametr typu definovaný procedurou. Máte však alternativu k vynechání seznamu argumentů typu zcela. Když to uděláte, kompilátor se pokusí odvodit typ každého argumentu typu z kontextu volání. Další informace naleznete v části Odvození typu v obecných procedurách jazyka Visual Basic.
Jednou z možných příčin selhání odvozování typu je neshoda pořadí mezi parametrem typu a volajícím typem. Následující kód to ilustruje.
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
V předchozím kódu tato dvě volání findLargest způsobí tuto chybu, protože parametr t typu volá jednorozměrné pole, zatímco argumenty typu, které kompilátor odvodí z volání, jsou skalární (testValue) a dvojrozměrné pole (testMatrix).
ID chyby: BC32050
Oprava této chyby
Ujistěte se, že typy normálních argumentů jsou takové, že odvození typu je konzistentní s parametry typu deklarovanými pro obecný postup.
nebo
Volání obecné procedury s úplným seznamem argumentů typu, takže odvození typu není nutné.