無法從這些引數推斷定義於 '<typename>' 中的擴充方法 '<methodname>' 之型別參數的資料型別,因為可能的型別不止一種

更新:2007 年 11 月

錯誤訊息

無法從這些引數推斷定義在 '<typename>' 中擴充方法 '<methodname>' 之型別參數的資料型別,因為可能的型別不止一種。明確地指定資料型別可能能夠修正這個錯誤。

已嘗試使用型別推斷來判斷泛型擴充方法呼叫中之型別參數的資料型別。編譯器找到一個或多個型別參數可能的資料型別不止一種,因此報告了此錯誤。

注意事項:

當指定引數不是選項時 (例如,查詢運算式中的查詢運算子),錯誤訊息會出現,但不會有第二句。

下列程式碼示範此錯誤。

Option Strict Off
Imports System.Runtime.CompilerServices
Module Module1
    Sub Main()

        Dim caller As New Class1
        '' Not valid.
        'caller.targetExtension(1, "2")

    End Sub

    <Extension()> _
    Sub targetExtension(Of T)(ByVal p0 As Class1, ByVal p1 As T, ByVal p2 As T)
    End Sub

    Class Class1
    End Class

End Module

錯誤 ID:BC36655 (在 LINQ 查詢內) 和 BC36652 (在查詢外)

若要更正這個錯誤

  • 如果錯誤出現在查詢以外,請嘗試明確指定型別參數的資料型別:

    caller.targetExtension(Of Integer)(1, "2")
    caller.targetExtension(Of String)(1, "2")
    

請參閱

概念

擴充方法 (Visual Basic)

Visual Basic 中的泛型程序

參考

Option Strict 陳述式