c# .net versioning

c# - ¿Cómo marcar un método como obsoleto o en desuso?



.net versioning (4)

¿Cómo puedo marcar un método como obsoleto o en desuso usando C #?


Agregue una anotación al método usando la palabra clave Obsolete . El argumento del mensaje es opcional, pero es una buena idea comunicar por qué el elemento ahora está obsoleto y / o qué usar en su lugar.
Ejemplo:

[System.Obsolete("use myMethodB instead")] void myMethodA()


Con ObsoleteAttribute puedes mostrar el método en deprecated . El atributo obsoleto tiene tres constructores:

  1. [Obsolete]: es un constructor sin parámetros y es un valor predeterminado que utiliza este atributo.
  2. [Obssolete(string message)]: en este formato puede recibir un message de por qué este método está en desuso.
  3. [Obsolete(string message, bool error)]: en este formato, el mensaje es muy explícito, pero el error significa que, en tiempo de compilación, el compilador debe mostrar el error y la causa para fallar o no compilar.


La forma más corta es agregar el atributo ObsoleteAttribute como un atributo al método . Asegúrese de incluir una explicación apropiada:

[Obsolete("Method1 is deprecated, please use Method2 instead.")] public void Method1() { … }

También puede hacer que la compilación falle, considerando el uso del método como un error en lugar de una advertencia, si se llama al método desde algún lugar en un código como este:

[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]


Para marcar como obsoleto con una advertencia:

[Obsolete] private static void SomeMethod()

Recibes una advertencia cuando la usas:

Y con IntelliSense:

Si quieres un mensaje:

[Obsolete("My message")] private static void SomeMethod()

Aquí está la sugerencia de la herramienta IntelliSense:

Finalmente, si desea que el uso se marque como un error:

[Obsolete("My message", true)] private static void SomeMethod()

Cuando se usa esto es lo que obtienes:

Nota: Use el mensaje para decirles a las personas qué deben usar en su lugar, no por qué está obsoleto.