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
Génération de code dans LINQ to SQL
Ajout d'une logique métier à l'aide de méthodes partielles (LINQ to SQL)