Как пометить метод как устаревший или устаревший?

858

Как пометить метод как устаревший или устаревший с помощью С#?

  • 0
    Вот видео на YouTube, которое объясняет все 3 варианта атрибута «Устаревший»: youtube.com/watch?v=_AQ5wsPnfJ4
  • 2
    Не забывайте, что есть также [EditorBrowsable(EditorBrowsableState.Never)] ( stackoverflow.com/a/9086345/661933 ). Служит немного другой цели.
Теги:
versioning

7 ответов

1279
Лучший ответ

Самый короткий путь - это добавить атрибут ObsoleteAttribute в качестве атрибута метода. Обязательно включите соответствующее объяснение:

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

Вы также можете привести к сбою компиляции, рассматривая использование метода как ошибку вместо предупреждения, если метод вызывается где-то в коде следующим образом:

[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
  • 86
    если вы хотите, чтобы компилятор выдавал ошибку, если кто-то использует метод, используйте перегруженный метод Obsolete (String Message, Bool error)
  • 120
    Устаревшее без описания должно быть устаревшим ... notherdev.blogspot.com/2013/02/obsolete-should-be-obsolete.html
Показать ещё 11 комментариев
87

Отметить как устаревшее с предупреждением:

[Obsolete]
private static void SomeMethod()

Вы получаете предупреждение, когда используете его:

Изображение 994

И с IntelliSense:

Изображение 995

Если вы хотите получить сообщение:

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

Здесь подсказка инструмента IntelliSense:

Изображение 996

Наконец, если вы хотите, чтобы использование было помечено как ошибка:

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

При использовании этого вы получаете:

Изображение 997

Примечание. Используйте сообщение, чтобы сообщать людям, что они должны использовать, а не почему оно устарело.

61

Добавьте аннотацию к методу, используя ключевое слово Obsolete. Аргумент сообщения является необязательным, но это хорошая идея, чтобы сообщить, почему элемент сейчас устарел и/или что использовать вместо.
Пример:

[System.Obsolete("use myMethodB instead")]
void myMethodA()
19
[Obsolete]
    public void MyMethod()
9

Как сказано всеми, вы можете пометить его, используя атрибут [Устаревший]. Bowow - это простое видео youttube, которое объясняет все 3 варианта атрибута Obsolete.

Нажмите, чтобы просмотреть С# Устаревшее видео атрибутов

4

С ObsoleteAttribute вы можете показать deprecated метод. Устаревший атрибут имеет три конструктора:

  1. [Obsolete]: является конструктором параметров и используется по умолчанию с использованием этого атрибута.
  2. [Obsolete(string message)]: в этом формате вы можете получить message о том, почему этот метод устарел.
  3. [Obsolete(string message, bool error)]: в этом формате сообщение является очень явным, но error означает, что во время компиляции компилятор должен показывать ошибку и вызывать сбой при компиляции или нет.

Изображение 998

0

Единственный способ убедиться в том, что он должен уничтожить его с орбиты.

Лучший способ справиться с устаревшим кодом - удалить этот старый код.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню