'<genericproceduresignature>' türündeki '<typeparametername1>' türü parametresi için tür bağımsız değişken çıkarımı başarısız oldu
'<genericproceduresignature>' türündeki '<typeparametername1>' türü parametresi için tür bağımsız değişken çıkarımı başarısız oldu. '<parametername1>' parametresine geçirilen bağımsız değişkenden çıkarılmış tür bağımsız değişkeni, '<parametername2>' parametresine geçirilen bağımsız değişkenden çıkarılmış tür bağımsız değişkeniyle çakılır.
Herhangi bir tür bağımsız değişkeni olmadan genel bir yordam çağrılır ve denenen tür çıkarımı, tür parametreleri arasında bir veri türü çakışması oluşturmİştir.
Normalde, genel bir yordamı çağırdığınızda, genel yordamın tanımladığı her tür parametresi için bir tür bağımsız değişkeni belirtirsiniz. Herhangi bir tür bağımsız değişkeni sağlamazsanız, derleyici tür parametrelerine geçirilecek türleri çıkarsamaya çalışır. Çağrının bağlamı bir tür parametresi için çakışan veri türü bilgileri sağlıyorsa, tür çıkarımı başarısız olur.
Aşağıdaki kod bu hatayı oluşturabilir.
Public Sub takeTwoValues(Of t)(ByVal x As t, ByVal y As t)
End Sub
Call takeTwoValues(4, 2.5)
İlk bağımsız değişken derleyicinin tür parametresini çıkarabileceğinden Integer
, ikinci bağımsız değişken aynı tür parametresini t
çıkartırken Double
, hangi veri türünün 'e t
geçirilmesiyle ilgili bir çakışma vardır.
Hata Kimliği: BC32116
Derleyicinin bunları çıkarması gerekmemesi için genel türe tür bağımsız değişkenleri sağlayın.
VBCall takeTwoValues(Of Double)(4, 2.5)
İki normal bağımsız değişkenin farklı veri türlerinde olduğu bu durumda, çağıran kodun bu veri türlerinin her ikisini de barındırabilecek bir tür bağımsız değişkeni geçirmesi gerektiğine dikkat edin. Bu durumda,
Integer
olarak genişletildiDouble
.-veya-
Normal parametreler için farklı tür parametreleri belirtmek üzere genel yordamı yeniden tanımlandığından, türler çıkarılırken çakışma olmaz.
VBPublic Sub takeTwoValues(Of t1, t2)(ByVal x As t1, ByVal y As t2)
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: