Jenis data dari parameter jenis dalam metode ekstensi '<methodname>' yang ditentukan dalam 'typename' tidak dapat disimpulkan dari argumen ini karena tidak dikonversi ke dalam jenis yang sama

Jenis data dari parameter jenis dalam metode ekstensi '<methodname>' yang ditentukan dalam 'typename' tidak dapat disimpulkan dari argumen ini karena tidak dikonversi ke dalam jenis yang sama. Menentukan jenis data secara eksplisit dapat memperbaiki kesalahan ini.

Upaya telah dilakukan untuk menggunakan inferensi jenis untuk menentukan jenis data (atau jenis) parameter jenis (atau parameter) saat mengevaluasi panggilan ke metode ekstensi generik. Compiler tidak dapat menemukan jenis data yang memenuhi batasan semua argumen. Oleh karena itu, ia melaporkan kesalahan ini.

Catatan

Saat menentukan argumen bukanlah opsi (misalnya, untuk operator kueri dalam ekspresi kueri), pesan kesalahan muncul tanpa kalimat kedua.

Kode berikut menunjukkan kesalahan yang sama.

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 Kesalahan: BC36661 dan BC36658

Untuk memperbaiki kesalahan ini

  • Anda mungkin dapat mengonversi satu atau beberapa argumen secara eksplisit ke dalam jenis yang kompatibel, seperti yang diperlihatkan dalam kode berikut:

    c1.targetMethod(19, #3/4/2007#.ToOADate)
    
  • Anda mungkin dapat menentukan jenis data untuk parameter jenis atau parameter yang dikonversi argumen, seperti yang ditunjukkan dalam kode berikut:

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

Lihat juga