Compartir a través de


Obsolete (Guía de programación de C#)

Actualización: noviembre 2007

El atributo Obsolete marca una entidad del programa como si su uso ya no estuviera recomendado. Cada uso de una entidad marcada obsoleta generará en consecuencia una advertencia o un error, dependiendo de la configuración del atributo. Por ejemplo:

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

En este ejemplo, el atributo Obsolete se aplica a la clase A y al método B.OldMethod. Como el segundo argumento del constructor del atributo aplicado a B.OldMethod se establece en true, este método generará un error de compilación, mientras que el uso de la clase A sólo generará una advertencia. Sin embargo, llamar a B.NewMethod no genera ninguna advertencia o error.

La cadena proporcionada como primer argumento al constructor de atributos se mostrará como parte de la advertencia o error. Por ejemplo, cuando lo use con las definiciones anteriores, el código siguiente genera dos advertencias y un error:

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

Se generan dos advertencias para la clase A: uno para la declaración de la referencia de clase y otro para el constructor de clase.

El atributo Obsolete se puede utilizar sin argumentos, pero incluyendo una explicación del motivo por el que el elemento está obsoleto y una recomendación sobre qué utilizar en su lugar.

El atributo Obsolete es un atributo de uso único y se puede aplicar a cualquier entidad que permite el uso de atributos. Obsolete es un alias para ObsoleteAttribute.

Vea también

Conceptos

Guía de programación de C#

Referencia

Reflexión (Guía de programación de C#)

Atributos (Guía de programación de C#)

Eliminar la ambigüedad de los destinos de atributos (Guía de programación de C#)

Crear atributos personalizados (Guía de programación de C#)

Acceso a atributos mediante reflexión (Guía de programación de C#)

Attribute

System.Reflection