Obsolete (Guida per programmatori C#)

Aggiornamento: novembre 2007

L'attributo Obsolete viene utilizzato per contrassegnare un'entità del programma il cui uso non è più consigliato. Ogni volta che si utilizza un'entità contrassegnata con questo attributo verrà generato automaticamente un avviso o un errore, a seconda del modo in cui è configurato l'attributo. Di seguito è riportato un esempio di utilizzo di questo attributo.

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

In questo esempio l'attributo Obsolete viene applicato alla classe A e al metodo B.OldMethod. Poiché il secondo argomento del costruttore di attributo applicato a B.OldMethod è impostato su true, questo metodo causerà un errore del compilatore, mentre l'utilizzo della classe A produrrà semplicemente un avviso. La chiamata a B.NewMethod, tuttavia, non causerà né un avviso né un errore.

La stringa fornita come primo argomento del costruttore di attributo verrà visualizzata nel testo dell'avviso o dell'errore. Se ad esempio si utilizzano le definizioni precedenti, il codice riportato di seguito genera due avvisi e un errore:

// 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();

Vengono generati due avvisi per la classe A: uno per la dichiarazione del riferimento della classe e uno per il costruttore di classe.

L'attributo Obsolete può essere utilizzato senza argomenti. In questo caso, tuttavia, si consiglia di indicare il motivo che rende obsoleto l'elemento e di fornire un elemento da utilizzare in alternativa.

Obsolete è un attributo di utilizzo singolo e può essere applicato a qualsiasi entità che supporta gli attributi. Obsolete è un alias per ObsoleteAttribute.

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Reflection (Guida per programmatori C#)

Attributi (Guida per programmatori C#)

Risolvere le ambiguità sulle destinazioni degli attributi (Guida per programmatori C#)

Creazione di attributi personalizzati (Guida per programmatori C#)

Accesso agli attributi mediante reflection (Guida per programmatori C#)

Attribute

System.Reflection