Почему я в этом случае печатаю System.char []?

Я пытаюсь понять, что я делаю неправильно здесь, но я не могу показаться. У меня есть этот метод, который принимает строку и меняет ее. Однако, когда я распечатываю обратную строку из метода вызывающего, я просто получаю "System.Char []" вместо фактической инвертированной строки.

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

Ответ 1

Вызов ToString в массиве T в .NET всегда будет возвращать "T[]". Вместо этого вы хотите использовать это: new string(reversedString).

Ответ 2

Вызывая ToString, вы просто получаете реализацию по умолчанию, которую каждый класс наследует от object..NET не может обеспечить специальную реализацию только для массива char; переопределение должно применяться ко всем типам массива.

Вместо этого вы можете передать массив в конструктор String, return new String(reversedString).