Partager via


Utilisation d'attributs (Guide de programmation C#)

Mise à jour : novembre 2007

Les attributs peuvent être placés dans la plupart des déclarations (même si un attribut particulier peut restreindre les types de déclaration dans lesquels il est valide). Sur le plan de la syntaxe, vous pouvez spécifier un attribut simplement en mettant son nom entre crochets devant la déclaration de l'entité à laquelle il s'applique. Par exemple, une méthode avec l'attribut DllImport est déclarée de la manière suivante :

[System.Runtime.InteropServices.DllImport("user32.dll")]
extern static void SampleMethod();

Pour plus d'informations, consultez DllImportAttribute.

De nombreux attributs possèdent des paramètres qui peuvent être positionnels, sans nom ou nommés. Les paramètres positionnels doivent être spécifiés dans un certain ordre et ne peuvent pas être omis ; les paramètres nommés sont facultatifs et peuvent être spécifiés dans n'importe quel ordre. Les paramètres positionnels sont spécifiés en premier. Par exemple, ces trois attributs sont équivalents :

[DllImport("user32.dll")]
[DllImport("user32.dll", SetLastError=false, ExactSpelling=false)]
[DllImport("user32.dll", ExactSpelling=false, SetLastError=false)]

Le premier paramètre, le nom de la DLL, est positionnel et se place toujours en premier ; les autres sont nommés. Dans ce cas, les paramètres nommés prennent par défaut la valeur false pour pouvoir être omis. Consultez la documentation des attributs individuels pour plus d'informations sur les valeurs par défaut des paramètres.

Il est possible de placer plusieurs attributs dans une déclaration, séparément ou à l'intérieur de la même paire de crochets :

void MethodA([In][Out] ref double x) { }
void MethodB([Out][In] ref double x) { }
void MethodC([In, Out] ref double x) { }

Certains attributs peuvent être spécifiés plusieurs fois pour une entité donnée. Conditional est un exemple d'un tel attribut multiusage :

[Conditional("DEBUG"), Conditional("TEST1")]
void TraceMethod()
{
    // ...
}
Remarque :

Par convention, tous les noms d'attributs se terminent par le mot « Attribute » de façon à les distinguer des autres éléments du .NET Framework. Cependant, vous n'êtes pas obligé de spécifier le suffixe d'attribut lorsque vous employez des attributs dans le code. Par exemple, [DllImport] équivaut à [DllImportAttribute], mais DllImportAttribute est le véritable nom de l'attribut dans le .NET Framework.

Voir aussi

Concepts

Guide de programmation C#

Référence

Réflexion (Guide de programmation C#)

Attributs (Guide de programmation C#)

Levée de l'ambiguïté sur les cibles d'attribut (Guide de programmation C#)

Création d'attributs personnalisés (Guide de programmation C#)

Accès à des attributs à l'aide de la réflexion (Guide de programmation C#)

Attribute

System.Reflection