Comment marquer une méthode comme obsolète ou obsolète à l'aide de C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Sert un but légèrement différent.
Comment marquer une méthode comme obsolète ou obsolète à l'aide de C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Sert un but légèrement différent.
Réponses:
Le moyen le plus court consiste à ajouter l' attributObsoleteAttribute
as à la méthode . Assurez-vous d'inclure une explication appropriée:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }
Vous pouvez également provoquer l'échec de la compilation, en traitant l'utilisation de la méthode comme une erreur au lieu d'un avertissement , si la méthode est appelée quelque part dans un code comme celui-ci:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
Pour marquer comme obsolète avec un avertissement:
[Obsolete]
private static void SomeMethod()
Vous recevez un avertissement lorsque vous l'utilisez:
Et avec IntelliSense:
Si vous voulez un message:
[Obsolete("My message")]
private static void SomeMethod()
Voici l'info-bulle IntelliSense:
Enfin, si vous souhaitez que l'utilisation soit signalée comme une erreur:
[Obsolete("My message", true)]
private static void SomeMethod()
Lorsqu'il est utilisé, voici ce que vous obtenez:
Remarque: utilisez le message pour indiquer aux utilisateurs ce qu'ils doivent utiliser à la place, et non pourquoi il est obsolète.
Ajoutez une annotation à la méthode à l'aide du mot clé Obsolete
. L'argument de message est facultatif mais une bonne idée de communiquer pourquoi l'élément est maintenant obsolète et / ou quoi utiliser à la place.
Exemple:
[System.Obsolete("use myMethodB instead")]
void myMethodA()
Avec ObsoleteAttribute
vous pouvez afficher la méthode obsolète. L'attribut obsolète a trois constructeurs:
[Obsolete]:
est un constructeur sans paramètre et est une valeur par défaut utilisant cet attribut.[Obsolete(string message)]:
dans ce format, vous pouvez comprendremessage
pourquoi cette méthode est déconseillée.[Obsolete(string message, bool error)]:
dans ce format, le message est très explicite maiserror
signifie, au moment de la compilation, que le compilateur doit afficher une erreur et provoquer l'échec de la compilation ou non.