Datové typy parametrů typů v metodě rozšíření< methodname definované v typename> nelze odvodit z těchto argumentů, protože se nepřevádějí na stejný typ.

Datové typy parametrů typu v metodě< rozšíření methodname definované v parametru typename> nelze odvodit z těchto argumentů, protože se nepřevádějí na stejný typ. Pokud zadáte datové typy explicitně, může se tato chyba opravit.

Při vyhodnocování volání obecné rozšiřující metody byl proveden pokus o použití odvození typu k určení datového typu (nebo typů) parametru typu (nebo parametrů). Kompilátor nemohl najít datový typ, který splňuje omezení všech argumentů. Proto tuto chybu oznámila.

Poznámka:

Při zadávání argumentů není možnost (například pro operátory dotazu ve výrazech dotazu), zobrazí se chybová zpráva bez druhé věty.

Následující kód ukazuje chybu.

Option Strict Off
Module Module3
    Sub Main()

        Dim c1 As New Class1

        '' Not valid. Integer and Date do not convert to the same type.
        'c1.targetMethod(19, #3/4/2007#)

    End Sub

    <System.Runtime.CompilerServices.Extension()> _
    Sub targetMethod(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
    End Sub

    Class Class1
    End Class

End Module

ID chyby: BC36661 a BC36658

Oprava této chyby

  • Můžete být schopni převést jeden nebo více argumentů explicitně na kompatibilní typ, jak je znázorněno v následujícím kódu:

    c1.targetMethod(19, #3/4/2007#.ToOADate)
    
  • Můžete být schopni zadat datový typ pro parametr typu nebo parametry, na které se argumenty převedou, jak je znázorněno v následujícím kódu:

    c1.targetMethod(Of String)(19, #3/4/2007#)
    

Viz také