web-dev-qa-db-fra.com

Comment marquer une méthode comme obsolète ou obsolète?

Comment marquer une méthode comme obsolète ou obsolète à l'aide de C #?

927
Chris Ballance

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)]
1484
Chris Ballance

Pour marquer comme obsolète avec un avertissement:

[Obsolete]
private static void SomeMethod()

Vous recevez un avertissement lorsque vous l'utilisez:

Obsolete warning is shown

Et avec IntelliSense:

Obsolete warning with IntelliSense

Si vous voulez un message:

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

Voici l'info-bulle IntelliSense:

IntelliSense shows the obsolete message

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:

Method usage is displayed as an error

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.

111
mark_h

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()
63
jchadhowell

Avec ObsoleteAttribute vous pouvez afficher la méthode déconseillée. L'attribut obsolète a trois constructeurs:

  1. [Obsolete]: est un constructeur sans paramètre et est un défaut utilisant cet attribut.
  2. [Obsolete(string message)]: dans ce format, vous pouvez obtenir message des raisons pour lesquelles cette méthode est déconseillée.
  3. [Obsolete(string message, bool error)]: dans ce format, le message est très explicite, mais error signifie que, au moment de la compilation, le compilateur doit afficher une erreur et entraîner l'échec de la compilation ou non.

enter image description here

29
Sina Lotfi