Jak oznaczyć metodę jako przestarzałą lub przestarzałą za pomocą C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Służy nieco inny cel.
Jak oznaczyć metodę jako przestarzałą lub przestarzałą za pomocą C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Służy nieco inny cel.
Odpowiedzi:
Najkrótsza droga jest poprzez dodanie ObsoleteAttribute
jako atrybut do metody . Pamiętaj o podaniu odpowiedniego wyjaśnienia:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }
Możesz także spowodować niepowodzenie kompilacji, traktując użycie metody jako błąd zamiast ostrzeżenia , jeśli metoda jest wywoływana gdzieś w kodzie w następujący sposób:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
Aby oznaczyć jako przestarzałe ostrzeżenie:
[Obsolete]
private static void SomeMethod()
Podczas korzystania z niego pojawia się ostrzeżenie:
A dzięki IntelliSense:
Jeśli chcesz wiadomość:
[Obsolete("My message")]
private static void SomeMethod()
Oto podpowiedź IntelliSense:
Wreszcie, jeśli chcesz, aby użycie zostało oznaczone jako błąd:
[Obsolete("My message", true)]
private static void SomeMethod()
Po użyciu otrzymujesz:
Uwaga: użyj tego komunikatu, aby powiedzieć ludziom, czego powinni użyć, a nie dlaczego jest przestarzały.
Dodaj adnotację do metody za pomocą słowa kluczowego Obsolete
. Argument komunikatu jest opcjonalny, ale dobrym pomysłem jest poinformowanie, dlaczego element jest już nieaktualny i / lub czego użyć zamiast niego.
Przykład:
[System.Obsolete("use myMethodB instead")]
void myMethodA()
Dzięki ObsoleteAttribute
możesz pokazać przestarzałą metodę. Przestarzały atrybut ma trzy konstruktory:
[Obsolete]:
jest konstruktorem bez parametrów i domyślnie korzysta z tego atrybutu.[Obsolete(string message)]:
w tym formacie możesz dowiedzieć się,message
dlaczego ta metoda jest przestarzała.[Obsolete(string message, bool error)]:
w tym formacie komunikat jest bardzo wyraźny, aleerror
oznacza, że w czasie kompilacji kompilator musi wyświetlać błędy i powodować niepowodzenia kompilacji lub nie.