Parametr typeparametername<> pro< genericprocedurename> nelze odvodit.

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é.

Viz také