Comment marquer une méthode comme obsolète ou obsolète à l'aide de C #?
Le moyen le plus court consiste à ajouter le ObsoleteAttribute
en tant que attribut à 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'avertissement , si la méthode est appelée quelque part dans le code comme ceci:
[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()
Lorsque vous l'utilisez, c'est ce que vous obtenez:
Remarque: utilisez le message pour indiquer aux utilisateurs ce qu’ils doivent utiliser à la place, et non la raison pour laquelle il est obsolète.
Ajoutez une annotation à la méthode à l'aide du mot-clé Obsolete
. L'argument du message est facultatif, mais c'est une bonne idée de dire pourquoi l'élément est maintenant obsolète et/ou ce qu'il faut utiliser à la place.
Exemple:
[System.Obsolete("use myMethodB instead")]
void myMethodA()
Avec ObsoleteAttribute
vous pouvez afficher la méthode déconseillée. L'attribut obsolète a trois constructeurs:
[Obsolete]:
est un constructeur sans paramètre et est un défaut utilisant cet attribut.[Obsolete(string message)]:
dans ce format, vous pouvez obtenirmessage
des raisons pour lesquelles cette méthode est déconseillée.[Obsolete(string message, bool error)]:
dans ce format, le message est très explicite, maiserror
signifie que, au moment de la compilation, le compilateur doit afficher une erreur et entraîner l'échec de la compilation ou non.