分部方法 (Visual Basic)
利用分部方法,开发人员可以在代码中插入自定义逻辑。 通常,代码是设计器生成的类的一部分。 分部方法是在由代码生成器创建的分部类中定义的,并且通常用于提供内容已更改了的通知。 这些方法使开发人员可以指定自定义行为来响应更改。
代码生成器的设计器仅定义方法签名以及对方法的一次或多次调用。 随后,如果开发人员想要自定义生成的代码的行为,他们则可以为方法提供实现。 当未提供实现时,编译器将删除对方法的调用,这不会造成额外的性能开销。
声明
生成的代码通过将关键字 Partial
放置在签名行的开头来标记分部方法的定义。
Partial Private Sub QuantityChanged()
End Sub
定义必须满足以下条件:
方法必须是
Sub
,而不是Function
。方法的主体必须留空。
访问修饰符必须是
Private
。
实现
实现主要包含在分部方法的主体中进行填充。 实现通常在独立于定义的分部类中,并由想要扩展生成的代码的开发人员编写。
Private Sub QuantityChanged()
' Code for executing the desired action.
End Sub
上面的示例将在声明中准确地复制签名,但可能会发生变化。 具体而言,可能会添加其他修饰符,例如 Overloads
或 Overrides
。 只允许使用一个 Overrides
修饰符。 有关方法修饰符的详细信息,请参阅 Sub 语句。
用途
可以像调用任何其他 Sub
过程一样调用分部方法。 如果已实现此方法,则将计算参数并执行方法的主体。 但是,请记住,实现分部方法是可选的。 如果未实现此方法,则对它的调用不起作用,并且不计算作为参数传递给方法的表达式。
示例
在名为 Product.Designer.vb 的文件中,定义一个具有 Quantity
属性的 Product
类。
Partial Class Product
Private _Quantity As Integer
Property Quantity() As Integer
Get
Return _Quantity
End Get
Set(ByVal value As Integer)
_Quantity = value
QuantityChanged()
End Set
End Property
' Provide a signature for the partial method.
Partial Private Sub QuantityChanged()
End Sub
End Class
在名为 Product.vb 的文件中,提供 QuantityChanged
的实现。
Partial Class Product
Private Sub QuantityChanged()
MsgBox("Quantity was changed to " & Me.Quantity)
End Sub
End Class
最后,在项目的 Main 方法中,声明一个 Product
实例,并为其 Quantity
属性提供初始值。
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
随即应出现一个消息框,显示此消息:
Quantity was changed to 100