2010-08-25 15 views
11

Estoy tratando de descubrir qué estoy haciendo mal aquí, pero parece que no puedo. Tengo este método que toma una cadena y la invierte. Sin embargo, cuando imprimo la cadena invertida del método de la persona que llama, obtengo "System.Char []" en lugar de la cadena invertida real.¿Por qué estoy imprimiendo System.char [] en este caso?

static string reverseString(string toReverse) 
    { 
     char[] reversedString = toReverse.ToCharArray(); 
     Array.Reverse(reversedString); 
     return reversedString.ToString(); 
    } 

Respuesta

11

Calling ToString en una matriz de T en .NET siempre devolverá "T[]". Desea utilizar esto en su lugar: new string(reversedString).

+0

¡Guau, gracias! ¡Eso funciono! – Waffles

6

Al llamar al ToString, obtiene la implementación predeterminada que cada clase hereda de object. .NET no puede proporcionar una implementación especial solo para una matriz de char; la anulación debería aplicarse a todos los tipos de matriz.

En su lugar, puede pasar la matriz al constructor de String, return new String(reversedString).

Cuestiones relacionadas