無法從這些引數推斷定義於 'typename' 中的擴充方法 '<methodname>' 之型別參數的資料型別,因為它們不會轉換成相同型別
更新:2007 年 11 月
錯誤訊息
無法從這些引數推斷定義在 'typename' 中擴充方法 '<methodname>' 之型別參數的資料型別,因為它們不會轉換成相同型別。明確地指定資料型別可能能夠修正這個錯誤。
當評估泛型擴充方法的呼叫時,已嘗試使用型別推斷來判斷型別參數的資料型別。編譯器找不到資料型別符合所有引數的條件約束。因此,編譯器報告了此錯誤。
注意事項: |
---|
當指定引數不是選項時 (例如,查詢運算式中的查詢運算子),錯誤訊息會出現,但不會有第二句。 |
下列程式碼示範此錯誤。
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:BC36661 和 BC36658
若要更正這個錯誤
您可以將一個或多個引數明確轉換為相容的型別,如下列程式碼所示:
c1.targetMethod(19, #3/4/2007#.ToOADate)
您可以指定型別參數或引數要轉成之參數的資料型別:
c1.targetMethod(Of String)(19, #3/4/2007#)