'Optional' 不能套用至擴充方法的第一個參數

更新:2007 年 11 月

錯誤訊息

'Optional' 不能套用至擴充方法的第一個參數。第一個參數指定要延伸的類型。

擴充方法的第一個參數會指定方法所擴充的資料型別。執行此方法後,第一個參數就會繫結至叫用 (Invoke) 此方法的資料型別執行個體 (Instance)。因此,第一個參數為必要參數,不得為選擇性參數。

這項限制只適用於第一個參數。其他參數是否可為選擇性,則需遵循其他方法中的相同規則。如需詳細資訊,請參閱參數清單

錯誤 ID:BC36553

若要更正這個錯誤

  • 如果您想用目前的第一個參數指定要擴充的資料型別,請移除 Optional 關鍵字。

  • 如果目前的第一個參數是方法的標準參數,而您不想用它表示要擴充的資料型別,則請加入新的參數做為第一個參數。

範例

下列範例中的第一個參數是唯一指出 Print 方法會擴充 String 資料型別的地方,因此不能是選擇性參數。

<Extension()>
Public Sub Print (ByVal str As String)
    Console.WriteLine(str)
End Sub

以下列方式呼叫擴充方法時,方法中的 str 參數會繫結至呼叫 Print 的 String 執行個體,即 greeting。編譯器 (Compiler) 會使用 greeting 做為擴充方法 Print 的引數。

    Dim greeting As String = "Hello"
    greeting.Print()

請參閱

工作

HOW TO:為程序定義選擇性參數

概念

擴充方法 (Visual Basic)

選擇性參數