Jak oznaczyć metodę jako przestarzałą lub przestarzałą?
Jak oznaczyć metodę jako przestarzałą lub przestarzałą za pomocą C#?
4 answers
Najkrótszą drogą jest dodanie ObsoleteAttribute
jako atrybut do metody . Upewnij się, że zawiera odpowiednie wyjaśnienie:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }
Możesz również spowodować niepowodzenie kompilacji, traktując użycie metody jako błąd zamiast ostrzeżenia, jeśli metoda jest wywołana skądś w kodzie w następujący sposób:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 04:50:24
Oznaczyć jako przestarzałe z ostrzeżeniem:
[Obsolete]
private static void SomeMethod()
Dostajesz ostrzeżenie, gdy go używasz:
I z IntelliSense:
Jeśli chcesz wiadomość:
[Obsolete("My message")]
private static void SomeMethod()
Oto podpowiedź narzędzia IntelliSense:
Wreszcie, jeśli chcesz, aby użycie było oznaczone jako błąd:
[Obsolete("My message", true)]
private static void SomeMethod()
W przypadku użycia to jest to, co otrzymujesz:
Uwaga: użyj wiadomości, aby powiedzieć ludziom, czego powinni używać zamiast tego, a nie dlaczego przestarzałe.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-12 08:45:55
Dodaj adnotację do metody używając słowa kluczowego Obsolete
. Argument Message jest opcjonalny, ale dobrym pomysłem jest poinformowanie, dlaczego element jest przestarzały i / lub czego zamiast niego użyć.
Przykład:
[System.Obsolete("use myMethodB instead")]
void myMethodA()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-03 11:33:15
Za pomocą ObsoleteAttribute
możesz pokazać metodę deprecated
.
Przestarzały atrybut ma trzy konstruktory:
- {[2] } jest konstruktorem bez parametru i domyślnie używa tego atrybutu.
[Obssolete(string message)]:
w tym formacie możesz dowiedzieć się, dlaczego ta metoda jest przestarzała.[Obsolete(string message, bool error)]:
w tym formacie wiadomość jest bardzo jednoznaczna, aleerror
oznacza, że w czasie kompilacji kompilator musi wykazywać błąd i powodować niepowodzenie kompilacji lub nie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-18 13:08:49