Nie można wywnioskować typów typów parametrów w metodzie "<methodname>" z tych argumentów, ponieważ nie są konwertowane na ten sam typ

Nie można wywnioskować typów typów parametrów w metodzie "<methodname>" z tych argumentów, ponieważ nie są konwertowane na ten sam typ. Jawne określenie typów danych może poprawić ten błąd.

Podjęto próbę użycia wnioskowania typu w celu określenia typu danych lub typów parametrów typu podczas oceniania wywołania procedury ogólnej. Kompilator nie może odnaleźć typu danych spełniającego ograniczenia wszystkich argumentów. W związku z tym zgłosił ten błąd.

Uwaga

Podczas określania argumentów nie jest opcją (na przykład w przypadku operatorów zapytań w wyrażeniach zapytania) komunikat o błędzie jest wyświetlany bez drugiego zdania.

Poniższy kod demonstruje błąd.

Option Strict Off
Module Module1
    Sub Main()

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

    End Sub

    Sub targetMethod(Of T)(ByVal p1 As T, ByVal p2 As T)
    End Sub

End Module

Identyfikator błędu: BC36660 i BC36657

Aby poprawić ten błąd

  • Możesz jawnie przekonwertować jeden lub więcej argumentów na zgodny typ, jak pokazano w poniższym kodzie:

    targetMethod(19, #3/4/2007#.ToOADate)
    
  • Możesz określić typ danych dla parametru typu lub parametrów, do których argumenty są konwertowane, jak pokazano w poniższym kodzie:

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

Zobacz też