Почему в этом случае печатается System.char []? - PullRequest
12 голосов
/ 25 августа 2010

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

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

Ответы [ 2 ]

12 голосов
/ 25 августа 2010

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

6 голосов
/ 25 августа 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...