2010-10-04 9 views
12

Po wpisaniu .ToString() na typie Enum w programie Visual Studio, Intellisense pokazuje linię "strike-through" przez ToString() (chociaż działa poprawnie i działa poprawnie). Wydaje się wskazywać, że Enum.ToString() jest w pewnym sensie przestarzałe. Czy to prawda? Jeśli tak, dlaczego?Enum.ToString() przestarzałe?

alt text

+0

To dlatego toString() nie jest potrzebna, jako że to, co się dzieje na miano zresztą – PostMan

+2

Używasz żadnych rozszerzeń dla VS, które dodają zabarwienie (np skreślić)? –

+0

@Reed, używam ReSharper ... nie wiem, czy to robi – JoelFan

Odpowiedz

27

Do przeciążenia Enum.ToString że biorą IFormatProvider, ToString(IFormatProvider) i ToString(String, IFormatProvider) są zarówno przestarzały, ponieważ IFormatProvider nie jest stosowany w każdym razie.

Inne przeciążenia, ToString() i ToString(String), nie są przestarzałe.

To funkcja programu ReSharper, która eliminuje przestarzałych członków klasy. Najwyraźniej nie jest to zbyt dobre.

+6

W szczególności przeciążanie bez arg ('ToString()'), którego używa OP, nie jest ** przestarzałe. –

+2

Cóż, Intellisense uderza w "ToString" jeszcze zanim rozwinęłem przeciążenia. – JoelFan

+0

@Joel: co masz na myśli mówiąc "uderza"? Czy otrzymujesz komunikat o błędzie kompilatora lub ostrzeżenie? Co widzisz po najechaniu myszą na ten kod? –