Як я можу позначити метод застарілим або застарілим за допомогою C # ?
[EditorBrowsable(EditorBrowsableState.Never)]( stackoverflow.com/a/9086345/661933 ). Служить трохи іншого призначення.
Як я можу позначити метод застарілим або застарілим за допомогою C # ?
[EditorBrowsable(EditorBrowsableState.Never)]( stackoverflow.com/a/9086345/661933 ). Служить трохи іншого призначення.
Відповіді:
Найкоротший шлях - додавання методуObsoleteAttribute як атрибута . Обов’язково додайте відповідне пояснення:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }
Ви також можете спричинити збій компіляції, трактуючи використання методу як помилку замість попередження , якщо метод викликається звідкись у коді, як це:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
Щоб позначити як застаріле з попередженням:
[Obsolete]
private static void SomeMethod()
Ви отримуєте попередження, використовуючи його:

І з IntelliSense:

Якщо ви хочете повідомлення:
[Obsolete("My message")]
private static void SomeMethod()
Ось підказка інструмента IntelliSense:

Нарешті, якщо ви хочете, щоб використання було позначено як помилка:
[Obsolete("My message", true)]
private static void SomeMethod()
При використанні це те, що ви отримуєте:

Примітка. Використовуйте повідомлення, щоб повідомити людям, що вони повинні використовувати замість цього, а не чому це застаріло.
За допомогою ObsoleteAttributeвас можна показати застарілий метод. Застарілий атрибут має три конструктори:
[Obsolete]:не є конструктором параметрів без параметрів і за замовчуванням використовує цей атрибут.[Obsolete(string message)]:у такому форматі ви можете дізнатися,messageчому цей метод застарів.[Obsolete(string message, bool error)]:у цьому форматі повідомлення є дуже явним, алеerrorозначає, що під час компіляції компілятор повинен показувати помилку та викликати збій компіляції чи ні.