With...End With, instruction (Visual Basic)
Exécute une série d'instructions qui fait référence à plusieurs reprises à un objet ou une structure unique.
With object
[ statements ]
End With
Composants
Terme |
Définition |
expression |
Requis.Une expression qui correspond à un objet.L'expression peut être arbitrairement complexes et est évaluée qu'une seule fois.l'expression peut évaluer à n'importe quel type de données, y compris les types élémentaires. |
statements |
Optionnel.Une ou plusieurs instructions entre With et End With qui peuvent référencer des membres d'un objet qui est produite par l'évaluation d' expression. |
End With |
Requis.Met fin à la définition du bloc With. |
Notes
À l'aide de With...End With, vous pouvez exécuter une série d'instructions sur un objet spécifié sans spécifier le nom de l'objet plusieurs fois.Dans un bloc d'instructions d' With , vous pouvez spécifier un membre de l'objet à partir d'un point, comme si l'objet d'instruction d' With un précédé.
Par exemple, pour modifier plusieurs propriétés d'un objet unique, placez les instructions d'assignation de propriété à l'intérieur de le bloc d' With...End With , en faisant référence à l'objet qu'une seule fois au lieu d'une fois pour chaque assignation de propriété.
Si votre code accède au même objet dans plusieurs instructions, vous bénéficiez des avantages suivants à l'aide de l'instruction d' With :
Vous n'avez pas besoin d'évaluer une expression complexe plusieurs fois ou d'assigner le résultat à une variable temporaire pour faire référence à ses membres plusieurs fois.
Vous rendez votre code plus lisible en éliminant des expressions de qualification répétitives.
Le type de données d' expression peut être tout type de classe ou de structure ou même un type simple de Visual Basic comme Integer.
expression est évalué une fois, lors de l'entrée dans le bloc.Vous ne pouvez pas réassigner expression du bloc d' With .
Dans un bloc d' With , vous pouvez accéder aux méthodes et aux propriétés de l'objet que spécifié sans les qualifier.Vous pouvez utiliser des méthodes et des propriétés pour les autres objets, mais vous devez les désigner par leurs noms d'objets.
Vous pouvez placer une instruction d' With...End With dans une autre.Les instructions imbriquées d' With...End With peuvent être embrouillantes si les objets qui sont mentionnés ne sont pas clairs du contexte.Vous devez fournir une référence qualifiée complète à un objet qui est dans un bloc externe d' With lorsque l'objet est référencé d'un bloc interne d' With .
Vous ne pouvez pas créer une branche dans un bloc d'instructions d' With en dehors de le bloc.
À moins que le bloc contienne une boucle, les instructions sont exécutées qu'une seule fois.Vous pouvez imbriquer différents genres de structures de contrôle.Pour plus d’informations, consultez Structures de contrôle imbriquées (Visual Basic).
[!REMARQUE]
Vous pouvez utiliser le mot clé d' With dans les initialiseurs d'objets.Pour plus d'informations et d'exemples, consultez Initialiseurs d'objets : types nommés et anonymes (Visual Basic) et Types anonymes (Visual Basic).
Si vous utilisez un bloc d' With pour initialiser uniquement les propriétés ou les champs d'un objet que vous venez de instancié, envisagez d'utiliser un initialiseur d'objet plutôt.
Exemple
Dans l'exemple suivant, chaque bloc d' With exécute une série d'instructions sur un objet unique.
Private Sub AddCustomer()
Dim theCustomer As New Customer
With theCustomer
.Name = "Coho Vineyard"
.URL = "http://www.cohovineyard.com/"
.City = "Redmond"
End With
With theCustomer.Comments
.Add("First comment.")
.Add("Second comment.")
End With
End Sub
Public Class Customer
Public Property Name As String
Public Property City As String
Public Property URL As String
Public Property Comments As New List(Of String)
End Class
L'exemple suivant emboîte les instructions d' With…End With .Dans l'instruction imbriquée d' With , la syntaxe fait référence à l'objet interne.
Dim theWindow As New EntryWindow
With theWindow
With .InfoLabel
.Content = "This is a message."
.Foreground = Brushes.DarkSeaGreen
.Background = Brushes.LightYellow
End With
.Title = "The Form Title"
.Show()
End With
Voir aussi
Référence
Concepts
Structures de contrôle imbriquées (Visual Basic)
Initialiseurs d'objets : types nommés et anonymes (Visual Basic)