Propriétés implémentées automatiquement (Visual Basic)
Lespropriétés implémentées automatiquement vous permettent de spécifier rapidement une propriété d’une classe sans avoir à écrire de code dans Get
et Set
la propriété. Quand vous écrivez du code pour une propriété implémentée automatiquement, le compilateur Visual Basic crée automatiquement un champ privé pour stocker la variable de propriété en plus de créer les procédures Get
et Set
associées.
Avec les propriétés implémentées automatiquement, une propriété, y compris une valeur par défaut, peut être déclarée en une seule ligne. L'exemple suivant montre trois déclarations de propriété.
Public Property Name As String
Public Property Owner As String = "DefaultName"
Public Property Items As New List(Of String) From {"M", "T", "W"}
Public Property ID As New Guid()
Une propriété implémentée automatiquement est équivalente à une propriété dont la valeur de propriété est stockée dans un champ privé. L'exemple de code suivant montre une propriété implémentée automatiquement.
Property Prop2 As String = "Empty"
L'exemple de code suivant montre le code équivalent pour l'exemple précédent de propriété implémentée automatiquement.
Private _Prop2 As String = "Empty"
Property Prop2 As String
Get
Return _Prop2
End Get
Set(ByVal value As String)
_Prop2 = value
End Set
End Property
Le code suivant montre l'implémentation des propriétés en lecture seule :
Class Customer
Public ReadOnly Property Tags As New List(Of String)
Public ReadOnly Property Name As String = ""
Public ReadOnly Property File As String
Sub New(file As String)
Me.File = file
End Sub
End Class
Vous pouvez assigner la propriété avec des expressions d'initialisation, comme illustré dans cet exemple, ou vous pouvez assigner les propriétés dans le constructeur du type conteneur. Vous pouvez assigner les champs de stockage des propriétés en lecture seule à tout moment.
Champ de stockage
Lorsque vous déclarez une propriété implémentée automatiquement, Visual Basic crée automatiquement un champ privé masqué appelé champ de stockage pour contenir la valeur de propriété. Le nom du champ de stockage correspond au nom de la propriété implémentée automatiquement précédé d'un trait de soulignement (_). Par exemple, si vous déclarez une propriété implémentée automatiquement nommée ID
, le champ de stockage est nommé _ID
. Si vous incluez un membre de votre classe également nommé _ID
, vous créez un conflit de noms et Visual Basic signale une erreur du compilateur.
Le champ de stockage possède également les caractéristiques suivantes :
Le modificateur d'accès pour le champ de stockage est toujours
Private
, même quand la propriété a elle-même un niveau d'accès différent, tel quePublic
.Si la propriété est marquée comme
Shared
, le champ de stockage est également partagé.Les attributs spécifiés pour la propriété ne s'appliquent pas au champ de stockage.
Le champ de stockage est accessible à partir du code dans la classe et des outils de débogage tels que la fenêtre Espion. Toutefois, le champ de stockage ne s'affiche pas dans une liste de saisie semi-automatique IntelliSense.
Initialisation d'une propriété implémentée automatiquement
Toute expression pouvant être utilisée pour initialiser un champ est valide pour l'initialisation d'une propriété implémentée automatiquement. Quand vous initialisez une propriété implémentée automatiquement, l'expression est évaluée et passée à la procédure Set
pour la propriété. Les exemples de code suivants montrent certaines propriétés implémentées automatiquement qui incluent des valeurs initiales.
Property FirstName As String = "James"
Property PartNo As Integer = 44302
Property Orders As New List(Of Order)(500)
Vous ne pouvez pas initialiser une propriété implémentée automatiquement qui est membre d'une Interface
ou qui est marquée MustOverride
.
Quand vous déclarez une propriété implémentée automatiquement en tant que membre d'une Structure
, vous pouvez initialiser la propriété implémentée automatiquement seulement si elle est marquée Shared
.
Quand vous déclarez une propriété implémentée automatiquement en tant que tableau, vous ne pouvez pas spécifier des limites d'index de tableau explicites. Toutefois, vous pouvez fournir une valeur à l'aide d'un initialiseur de tableau, comme indiqué dans les exemples suivants.
Property Grades As Integer() = {90, 73}
Property Temperatures As Integer() = New Integer() {68, 54, 71}
Définitions de propriétés qui requièrent la syntaxe standard
Les propriétés implémentées automatiquement sont pratiques et prennent en charge de nombreux scénarios de programmation. Toutefois, il existe des situations dans lesquelles vous ne pouvez pas utiliser une propriété implémentée automatiquement et doit utiliser à la place la norme, ou développé, syntaxe de propriété.
Vous devez utiliser la syntaxe de définition de propriété développée pour effectuer les opérations suivantes :
Ajouter du code à la procédure
Get
ouSet
d'une propriété, tel que du code permettant de valider des valeurs entrantes dans la procédureSet
. Par exemple, vous pouvez vérifier qu'une chaîne représentant un numéro de téléphone contient le nombre de chiffres requis avant de définir la valeur de la propriété.Spécifier une accessibilité différente pour les procédures
Get
etSet
. Par exemple, vous souhaiterez peut-être définir la procédureSet
commePrivate
et la procédureGet
commePublic
.Créer des propriétés
WriteOnly
.Utiliser des propriétés paramétrables (notamment les propriétés
Default
). Vous devez déclarer une propriété développée pour pouvoir spécifier un paramètre pour la propriété, ou pour spécifier des paramètres supplémentaires pour la procédureSet
.Placer un attribut sur le champ de stockage ou modifier le niveau d'accès du champ de stockage.
Fournir des commentaires XML pour le champ de stockage.
Développement d’une propriété implémentée automatiquement
Si vous devez convertir une propriété implémentée automatiquement en une propriété développée qui contient une procédure Get
ou Set
, l’éditeur de code de Visual Basic peut générer automatiquement les procédures Get
et Set
, et l’instruction End Property
pour la propriété. Le code est généré si vous placez le curseur sur une ligne vide après l’instruction Property
, tapez un G
(pour Get
) ou un S
(pour Set
) et appuyez sur Entrée. L'éditeur de code de Visual Basic génère automatiquement la procédure Get
ou Set
pour les propriétés en lecture seule et en écriture seule quand vous appuyez sur Entrée à la fin d'une instruction Property
.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour