Як я можу позначити метод застарілим або застарілим за допомогою 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
означає, що під час компіляції компілятор повинен показувати помилку та викликати збій компіляції чи ні.