Métodos parciales (Visual Basic)
Los métodos parciales permiten a los desarrolladores insertar lógica personalizada en el código. Normalmente, el código forma parte de una clase generada por el diseñador. Los métodos parciales se definen en una clase parcial creada por un generador de código, y se suelen usar para proporcionar notificaciones de que algo ha cambiado. Permiten al desarrollador especificar un comportamiento personalizado como respuesta al cambio.
El diseñador del generador de código define solo la firma del método y una o varias llamadas al método. Luego, los desarrolladores pueden proporcionar implementaciones para el método si quieren personalizar el comportamiento del código generado. Si no se proporciona ninguna implementación, el compilador quita las llamadas al método, lo que no se traduce en ninguna sobrecarga de rendimiento adicional.
Declaración
El código generado marca la definición de un método parcial al colocar la palabra clave Partial
al principio de la línea de firma.
Partial Private Sub QuantityChanged()
End Sub
La definición debe cumplir las condiciones siguientes:
El método debe ser
Sub
, noFunction
.El cuerpo del método debe dejarse vacío.
El modificador de acceso debe ser
Private
.
Implementación
La implementación consiste principalmente en rellenar el cuerpo del método parcial. La implementación suele estar en una clase parcial independiente de la definición, y la escribe un desarrollador que quiere ampliar el código generado.
Private Sub QuantityChanged()
' Code for executing the desired action.
End Sub
En el ejemplo anterior se duplica la firma en la declaración exactamente, pero se pueden realizar variaciones. En concreto, se pueden agregar otros modificadores, como Overloads
u Overrides
. Solo se permite un modificador Overrides
. Para obtener más información sobre los modificadores de métodos, vea Sub (Instrucción).
Uso
Llame a un método parcial igual que a cualquier otro procedimiento Sub
. Si el método se ha implementado, se evalúan los argumentos y se ejecuta el cuerpo del método. Pero recuerde que la implementación de un método parcial es opcional. Si el método no se ha implementado, una llamada a él no tiene ningún efecto, y las expresiones pasadas como argumentos al método no se evalúan.
Ejemplo
En un archivo de nombre Product.Designer.vb, defina una clase Product
que tenga una propiedad Quantity
.
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
En un archivo de nombre Product.vb, proporcione una implementación de QuantityChanged
.
Partial Class Product
Private Sub QuantityChanged()
MsgBox("Quantity was changed to " & Me.Quantity)
End Sub
End Class
Por último, en el método Main de un proyecto, declare una instancia Product
y proporcione un valor inicial para su propiedad Quantity
.
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
Debe aparecer un cuadro de mensaje con este mensaje:
Quantity was changed to 100