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, no Function.

  • 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

Consulte también