2010-10-04 15 views
12

Cuando escribo .ToString() en un tipo Enum en Visual Studio, el Intellisense muestra una línea de "tachado" a través de ToString() (aunque se compila y funciona bien). Parece indicar que Enum.ToString() está obsoleto de alguna manera. ¿Es esto cierto? Si es así, ¿por qué?Enum.ToString() obsoleto?

alt text

+0

Es porque no se necesita ToString(), ya que de todos modos se va a llamar – PostMan

+2

¿Está utilizando alguna extensión para VS que agregue coloración (como el tachado)? –

+0

@Reed, estoy usando ReSharper ... no sé si eso lo está haciendo – JoelFan

Respuesta

27

Las sobrecargas Enum.ToString que tienen un IFormatProvider, ToString(IFormatProvider) y ToString(String, IFormatProvider), son a la vez obsoletos, debido a que el IFormatProvider no se utiliza de todos modos.

Las otras sobrecargas, ToString() y ToString(String), no son obsoletas.

Es una característica de ReSharper eliminar a los miembros obsoletos de la clase. Aparentemente no es muy bueno en eso.

+6

Específicamente, la sobrecarga no-arg ('ToString()') que está utilizando el OP es ** no ** obsoleta. –

+2

Bueno, Intellisense golpea "ToString" incluso antes de expandir las sobrecargas – JoelFan

+0

@Joel: ¿qué quiere decir con "golpes"? ¿Recibes un error o advertencia del compilador? ¿Qué ves cuando mueves el mouse sobre ese código? –