views:

40

answers:

2

I'm trying to figure out what I'm doing wrong here, but I can't seem to. I have this method that takes in a string and reverses it. However, when I print out the reversed string from the caller method, I just get "System.Char []" instead of the actual reversed string.

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

Calling ToString on a T array in .NET will always return "T[]". You want to use this instead: new string(reversedString).

bcat
Wow, thanks! That worked!
Waffles
+3  A: 

By calling ToString you just get the default implementation that every class inherits from object. .NET can't provide a special implementation just for an array of char; the override would have to apply to all types of array.

Instead, you can pass the array to String's constructor, return new String(reversedString).

stevemegson