Come segnare un metodo come obsoleto o deprecato usando C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Serve a uno scopo leggermente diverso.
Come segnare un metodo come obsoleto o deprecato usando C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Serve a uno scopo leggermente diverso.
Risposte:
Il modo più breve è aggiungendo ObsoleteAttribute
come attributo al metodo . Assicurati di includere una spiegazione appropriata:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }
Puoi anche far fallire la compilazione, trattando l'uso del metodo come un errore invece che un avvertimento , se il metodo viene chiamato da qualche parte nel codice come questo:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
Per contrassegnare come obsoleto con un avviso:
[Obsolete]
private static void SomeMethod()
Ricevi un avviso quando lo usi:
E con IntelliSense:
Se vuoi un messaggio:
[Obsolete("My message")]
private static void SomeMethod()
Ecco il suggerimento di IntelliSense:
Infine, se vuoi che l'uso venga segnalato come errore:
[Obsolete("My message", true)]
private static void SomeMethod()
Quando utilizzato, questo è ciò che ottieni:
Nota: utilizzare il messaggio per dire alle persone cosa dovrebbero usare invece, non perché è obsoleto.
Con ObsoleteAttribute
te puoi mostrare il metodo deprecato. L'attributo obsoleto ha tre costruttori:
[Obsolete]:
è un costruttore senza parametri ed è un valore predefinito che utilizza questo attributo.[Obsolete(string message)]:
in questo formato puoi capiremessage
perché questo metodo è deprecato.[Obsolete(string message, bool error)]:
in questo formato il messaggio è molto esplicito maerror
significa, in fase di compilazione, il compilatore deve mostrare errori e causare la compilazione o meno.