'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()