“Optional”不能应用于扩展方法的第一个参数

更新:2007 年 11 月

错误消息

“Optional”不能应用于扩展方法的第一个参数。第一个参数指定要扩展哪种类型。

扩展方法的第一个参数指定方法将扩展的数据类型。执行方法时,第一个参数会绑定到调用该方法的数据类型的实例。因此,第一个参数是必需的,而不能是可选的。

此限制只适用于第一个参数。其他参数可能是可选的,也可能不是,遵循任何其他任何方法中的相同规则。有关更多信息,请参见参数列表

**错误 ID:**BC36553

更正此错误

  • 如果希望当前第一个参数指定要扩展的数据类型,请移除 Optional 关键字。

  • 如果当前第一个参数是方法的标准参数,并且您不希望它表示要扩展的数据类型,请添加新的第一个参数。

示例

下面示例中的第一个参数是 Print 方法扩展 String 数据类型的唯一指示。因此,它不能是可选的。

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

按照如下方式调用扩展方法时,该方法中的 str 参数会绑定到 greeting(即调用 Print 的 String 的实例)。编译器将 greeting 用作扩展方法 Print 的参数。

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

请参见

任务

如何:为过程定义可选参数

概念

扩展方法 (Visual Basic)

可选参数