La documentation de la classe DefaultValueAttribute est déroutante
Cet article explique la documentation déroutante de la classe DefaultValueAttribute .
Version d’origine du produit : .NET Framework
Numéro de la base de connaissances d’origine : 311339
Résumé
La documentation de la DefaultValueAttribute
classe peut prêter à confusion. En particulier, cette documentation indique :
La valeur par défaut d’un membre est généralement sa valeur initiale.
À partir de là, vous pouvez conclure que si vous définissez l’attribut DefaultValue
pour une propriété, la propriété est initialisée sur cette valeur. Toutefois, vous devez définir l’attribut de DefaultValue
la propriété sur sa valeur initialisée.
Plus d’informations
La rubrique Extension des métadonnées à l’aide d’attributs états :
Le Common Language Runtime vous permet d’ajouter des déclarations descriptives de type mot clé, appelées attributs, pour annoter des éléments de programmation tels que des types, des champs, des méthodes et des propriétés. Les attributs sont enregistrés avec les métadonnées d’un fichier Microsoft .NET Framework et peuvent être utilisés pour décrire votre code au runtime ou pour affecter le comportement de l’application au moment de l’exécution.
Si l’attribut de la propriété est égal à sa valeur initialisée, vous pouvez accéder aux métadonnées de la propriété pour déterminer la valeur par défaut. Vous pouvez ensuite utiliser cette valeur par défaut pour réinitialiser la variable membre correspondante si nécessaire. Vous pouvez également écrire des générateurs de code pour utiliser l’attribut DefaultValue
afin de déterminer si le code doit être généré pour la variable membre. Vous devez déterminer si du code doit être généré pour que la variable membre définisse correctement sa valeur initiale.
Toutefois, l’attribut DefaultValue
n’entraîne pas l’initialisation de la valeur initiale avec la valeur de l’attribut. Par exemple, dans l’exemple de code suivant, la IsValueSet
propriété a la valeur par défaut True et est également initialisée à la valeur True. S’il n’est pas initialisé, la valeur initiale de m_isValueSet
est False.
Imports System.ComponentModel
Public Class DefaultAttributeSample
' You must still initialize your member variable to its default value;
' the DefaultValue attribute does not do this.
Private m_isValueSet As Boolean = True
' The DefaultValue attribute should be equal to the member's initial
' value.
<DefaultValueAttribute(True)> _
Public Property IsValueSet() As Boolean
Get
IsValueSet = m_isValueSet
End Get
Set(ByVal Value As Boolean)
m_isValueSet = Value
End Set
End Property
End Class
Pour plus d’informations sur la façon d’appliquer des attributs afin qu’ils fournissent des métadonnées au Common Language Runtime, consultez Extension des métadonnées à l’aide d’attributs.
Étant donné que vous pouvez afficher des composants dans un concepteur tel que Visual Studio .NET ou Visual Studio, les composants nécessitent des attributs qui fournissent des métadonnées aux outils au moment du design.
Pour afficher correctement votre contrôle et ses membres au moment du design, les attributs au moment du design sont essentiels, car ils fournissent des informations précieuses à un outil de conception visuelle. Par exemple, dans le fragment de code suivant, l’attribut CategoryAttribute
permet à l’explorateur de propriétés d’afficher la TextAlignment
propriété dans la Alignment
catégorie . L’attribut DescriptionAttribute
permet à l’explorateur de propriétés de fournir une brève description de la propriété lorsqu’un utilisateur clique dessus.
[
Category ("Alignment"),
Description ("Specifies the alignment of text.")
]
public ContentAlignment TextAlignment { //... }
<Category("Alignment"), _
Description("Specifies the alignment of text.")> _
Public Property TextAlignment As ContentAlignment
' ...
End Property
Remarque
Dans Visual C# .NET, Visual Basic .NET ou Visual Basic, vous pouvez référencer une classe d’attribut nommée AttributeNameAttribute
simplement comme AttributeName
dans la syntaxe d’attribut.
References
Pour plus d’informations, consultez Vue d’ensemble des attributs.
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