Méthodes partielles

Mise à jour : novembre 2007

Les méthodes partielles permettent aux développeurs d'insérer une logique personnalisée dans le code. En général, le code fait partie d'une classe générée par le concepteur. Les méthodes partielles sont définies dans une classe partielle créée par un générateur de code et sont utilisées couramment pour notifier que quelque chose a été modifié. Elles permettent au développeur de spécifier un comportement personnalisé en réponse à la modification.

Le concepteur du générateur de code définit uniquement la signature de méthode et un ou plusieurs appels à la méthode. Les développeurs peuvent fournir ensuite des implémentations pour la méthode si ils souhaitent personnaliser le comportement du code généré. Lorsqu'aucune implémentation n'est fournie, les appels à la méthode sont supprimés par le compilateur, sans surcharge supplémentaire des performances.

Déclaration

Le code généré marque la définition d'une méthode partielle en plaçant le mot clé Partial au début de la ligne de signature.

Partial Private Sub QuantityChanged()
End Sub

La définition doit remplir les conditions suivantes :

  • La méthode doit être un Sub, pas un Function.

  • Le corps de la méthode doit rester vide.

  • Le modificateur d'accès doit être Private.

Implémentation

L'implémentation consiste principalement à remplir le corps de la méthode partielle. L'implémentation est en général dans une classe partielle séparée de la définition et est écrite par un développeur qui souhaite étendre le code généré.

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

L'exemple précédent duplique exactement la signature dans la déclaration, mais des variations sont possibles. En particulier, d'autres modificateurs peuvent être ajoutés, tel que Overloads ou Overrides. Un seul modificateur Overrides est autorisé. Pour plus d'informations sur les modificateurs de méthode, consultez Sub, instruction (Visual Basic).

Utilisation

Vous appelez une méthode partielle comme vous appelleriez toute autre procédure Sub. Si la méthode a été implémentée, les arguments sont évalués et le corps de la méthode est exécuté. Toutefois, souvenez-vous que l'implémentation d'une méthode partielle est facultative. Si la méthode n'est pas implémentée, son appel n'a aucun effet et les expressions passées comme arguments à la méthode ne sont pas évaluées.

Exemple

Dans un fichier nommé Product.Designer.vb, définissez une classe Product qui a une propriété 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

Dans un fichier nommé Product.vb, fournissez une implémentation pour QuantityChanged.

Partial Class Product

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

End Class

Enfin, dans la méthode Main d'un projet, déclarez une instance Product et fournissez une valeur initiale pour sa propriété Quantity.

Module Module1

    Sub Main()
        Dim product1 As New Product With {.Quantity = 100}
    End Sub

End Module

Le message suivant doit apparaître :

Quantity was changed to 100

Voir aussi

Concepts

Sub, procédures

Paramètres facultatifs

Génération de code dans LINQ to SQL

Ajout d'une logique métier à l'aide de méthodes partielles (LINQ to SQL)

Référence

Sub, instruction (Visual Basic)

Partial (Visual Basic)