Partager via


Obsolete (Guide de programmation C#)

Mise à jour : novembre 2007

L'attribut Obsolete est utilisé pour désigner une entité de programme dont l'utilisation n'est plus recommandée. Chaque utilisation d'une entité désignée comme obsolète génère par la suite un avertissement ou une erreur, selon la façon dont l'attribut est configuré. Par exemple :

[System.Obsolete("use class B")]
class A
{
    public void Method() { }
}
class B
{
    [System.Obsolete("use NewMethod", true)]
    public void OldMethod()  { }
    public void NewMethod()  { }
}

Dans cet exemple, l'attribut Obsolete est appliqué à la classe A et à la méthode B.OldMethod. Comme le deuxième argument du constructeur d'attribut appliqué à B.OldMethod a la valeur true, l'utilisation de cette méthode entraîne une erreur du compilateur, alors que l'utilisation de la classe A n'entraîne qu'un avertissement. Toutefois, B.NewMethod ne produit aucun avertissement ni erreur.

La chaîne fournie comme premier argument au constructeur d'attribut est affichée dans l'avertissement ou l'erreur. Par exemple, utilisé avec les définitions précédentes, le code suivant génère deux avertissements et une erreur :

// Generates 2 warnings:
A a = new A();
// Generate no errors or warnings:
B b = new B();
b.NewMethod();
// Generates an error, terminating compilation:
b.OldMethod();

Deux avertissements pour la classe A sont générés : un pour la déclaration de la référence de classe et un pour le constructeur de classe.

L'attribut Obsolete peut être utilisé sans arguments, mais il est recommandé d'inclure une explication sur la raison pour laquelle l'élément est obsolète et d'indiquer quoi utiliser en remplacement.

L'attribut Obsolete ne peut être utilisé qu'une fois et il peut s'appliquer à toute entité qui autorise des attributs. Obsolete est un alias de ObsoleteAttribute.

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