Я работаю над упражнением, где я должен попросить пользователя строку, а затем отменить строку и распечатать ее на консоли. Я написал следующее:Почему я не могу использовать метод .ToString() для массива char в C#?
Console.WriteLine("Please enter a string of characters: ");
char[] words = Console.ReadLine().ToCharArray();
Console.WriteLine("You entered {0}, the reverse of which is {1}", words.ToString(), words.Reverse().ToString());
Какой из них не работает. По-видимому, отправка массива char в .ToString() возвращает «System.Char []», а при обратном - возвращает «System.Linq.Enumerable + d__a0`1 [System.Char]».
я узнал, что .ToString() не может обрабатывать массив символов, а вместо этого я должен был использовать новую строку конструктора, так что я переписал свой код к этому, и он работает сейчас:
Console.WriteLine("Please enter a string of characters: ");
char[] words = Console.ReadLine().ToCharArray();
Console.WriteLine("You entered {0}, the reverse of which is {1}", new string(words), new string(words.Reverse().ToArray()));
Мой вопрос почему не могу использовать .ToString() в массиве символов? В сводке ToString неопределенно указано: «Возвращает строку, представляющую текущий объект», что для меня означало бы, что я получаю строку назад, которая представляет массив символов, который я отправляю. Что мне не хватает?
См [этот вопрос] (http://stackoverflow.com/questions/2245581/array-tostring) – jszigeti
[«Реализация метода ToString по умолчанию возвращает полное имя типа объекта»] (http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx) – Sayse
много других людей, которым не понравится ваша идея репрезентации массива. –