Méthodes partielles (Visual Basic)
Les méthodes partielles permettent aux développeurs d’insérer une logique personnalisée dans du code. En règle générale, 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 couramment utilisées pour fournir une notification indiquant que quelque chose a été modifié. Ils 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 ensuite fournir des implémentations pour la méthode s’ils souhaitent personnaliser le comportement du code généré. Quand aucune implémentation n’est fournie, les appels à la méthode sont supprimés par le compilateur, ce qui n’entraîne aucune surcharge de performances supplémentaire.
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 respecter les conditions suivantes :
La méthode doit être une
Sub
, pas uneFunction
.Le corps de la méthode doit être laissé 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 se trouve généralement dans une classe partielle distincte 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 la signature dans la déclaration exactement, mais les variantes sont possibles. En particulier, d’autres modificateurs peuvent être ajoutés, tels que Overloads
ou Overrides
. Un seul modificateur Overrides
est autorisé. Pour plus d’informations sur les modificateurs de méthode, consultez Instruction sub.
Utilisation
Vous appelez une méthode partielle, car vous appelez 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, n’oubliez pas que l’implémentation d’une méthode partielle est facultative. Si la méthode n’est pas implémentée, un appel à celui-ci n’a aucun effet et les expressions transmises en tant qu’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 de 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
Une boîte de message doit s’afficher pour afficher ce message :
Quantity was changed to 100