Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Inferensi argumen jenis gagal untuk parameter jenis '<typeparametername1>' dari '<genericproceduresignature>'. Argumen jenis yang disimpulkan dari argumen yang diteruskan ke parameter '<parametername1>' berbenturan dengan argumen jenis yang disimpulkan dari argumen yang diteruskan ke parameter '<parametername2>'.
Prosedur generik dipanggil tanpa argumen jenis apa pun, dan inferensi jenis yang diupayakan telah menghasilkan benturan jenis data antar parameter jenis.
Biasanya, ketika Anda memanggil prosedur generik, Anda menyediakan argumen jenis untuk setiap parameter jenis yang ditentukan prosedur generik. Jika Anda tidak menyediakan argumen jenis apa pun, pengompilasi berupaya menyimpulkan jenis untuk diteruskan ke parameter jenis. Jika konteks panggilan menyediakan informasi jenis data yang berbenturan untuk parameter jenis, maka inferensi jenis gagal.
Kode berikut dapat menghasilkan kesalahan ini.
Public Sub takeTwoValues(Of t)(ByVal x As t, ByVal y As t)
End Sub
Call takeTwoValues(4, 2.5)
Karena argumen pertama menyebabkan pengompilasi menyimpulkan Integer untuk parameter jenis t, sementara argumen kedua menyebabkannya menyimpulkan Double untuk parameter jenis yang sama, ada benturan mengenai jenis data mana yang akan diteruskan ke t.
ID Kesalahan: BC32116
Untuk memperbaiki kesalahan ini
Berikan argumen jenis ke prosedur generik agar pengompilasi tidak perlu menyimpulkannya.
Call takeTwoValues(Of Double)(4, 2.5)Perhatikan bahwa dalam hal ini, di mana dua argumen normal adalah dari berbagai jenis data, kode panggilan harus meneruskan argumen jenis yang dapat mengakomodasi kedua jenis data tersebut. Dalam hal ini,
Integermelebar keDouble.-atau-
Tentukan ulang prosedur generik untuk menentukan berbagai parameter jenis untuk parameter normal, agar tidak ada benturan yang menyimpulkan jenis.
Public Sub takeTwoValues(Of t1, t2)(ByVal x As t1, ByVal y As t2)