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

comment marquer une méthode comme obsolète ou dépréciée en utilisant C#?

789
demandé sur Chris Ballance 2009-11-19 00:53:38

4 réponses

le plus court chemin est d'ajouter l'attribut ObsoleteAttribute comme un à la méthode . Assurez-vous d'inclure une explication appropriée:

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

vous pouvez aussi faire échouer 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 de quelque part dans le code comme ceci:

[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
1315
répondu poke 2018-07-05 04:50:24

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 le Conseil de L'outil IntelliSense:

IntelliSense shows the obsolete message

Enfin, si vous voulez que l'usage soit signalé comme une erreur:

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

c'est ce que vous obtenez:

Method usage is displayed as an error

Note: utilisez le message pour dire aux gens ce qu'ils devraient utiliser à la place, pas pourquoi il est obsolète.

75
répondu mark_h 2018-01-12 08:45:55

ajouter une annotation à la méthode en utilisant le mot-clé Obsolete . L'argument de Message est facultatif mais une bonne idée pour communiquer 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()
55
répondu FTWinston 2018-09-03 11:33:15

avec ObsoleteAttribute vous pouvez montrer la méthode deprecated . Obsolete attribut a trois constructeur:

  1. [Obsolete]: est un constructeur sans paramètre et est un constructeur par défaut utilisant cet attribut.
  2. [Obssolete(string message)]: dans ce format vous pouvez obtenir message de pourquoi cette méthode est dépréciée.
  3. [Obsolete(string message, bool error)]: dans ce format, le message est très explicite, mais error signifie temps de compilation, le compilateur doit montrer l'erreur et faire échouer la compilation ou non.

enter image description here

2
répondu Sina Lotfi 2018-06-18 13:08:49