Métodos Partial

Actualización: noviembre 2007

Los métodos parciales permiten a los programadores insertar la 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 que crea un generador de código y se suelen usar para notificar que se ha cambiado algo. Permiten al programador especificar el comportamiento personalizado en respuesta al cambio.

El diseñador del generador de código define sólo la firma de método y una o más llamadas al mismo. Después, los programadores pueden proporcionar las implementaciones del método si desean personalizar el comportamiento del código generado. Cuando no se proporciona ninguna implementación, el compilador quita las llamadas al método produciéndose una sobrecarga de rendimiento adicional.

Declaración

El código generado marca la definición de un método parcial colocando 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 quedar vacío.

  • El modificador de acceso debe ser Private.

Implementación

La implementación está formada principalmente por el rellenado del cuerpo del método parcial. Normalmente, la implementación está en una clase parcial independiente de la definición y la escribe un programador que desea extender el código generado.

Private Sub QuantityChanged()
'    Code for executing the desired action.
End Sub

El ejemplo anterior duplica la firma en la declaración exactamente, pero son posibles las variaciones. En particular, se pueden agregar otros modificadores, como Overloads u Overrides. Se permite sólo un modificador Overrides. Para obtener más información sobre modificadores de métodos, vea Instrucción Sub (Visual Basic).

Utilice

Llame a un método parcial como llamaría a cualquier otro procedimiento Sub. Si se ha implementado el método, se evalúan los argumentos y se ejecuta el cuerpo del método. Sin embargo, recuerde que implementar un método parcial es opcional. Si no se implementa el método, una llamada a éste no tiene ningún efecto y no se evalúan las expresiones pasadas como argumentos al método.

Código de

En un archivo denominado Product.Designer.vb, defina una clase Product que tiene 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 denominado Product.vb, proporcione una implementación para QuantityChanged.

Partial Class Product

    Private Sub QuantityChanged()
        MsgBox("Quantity was changed to " & Me.Quantity)
    End Sub

End Class

Finalmente, en el método Main de un proyecto, declare una instancia de 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

Vea también

Conceptos

Procedimientos Sub

Parámetros opcionales

Generación de código en LINQ to SQL

Agregar lógica empresarial utilizando métodos Partial (LINQ to SQL)

Referencia

Instrucción Sub (Visual Basic)

Partial (Visual Basic)