c# - 为什么我不能在 C# 中的 char 数组上使用 .ToString() 方法?

标签 c# arrays 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}", words.ToString(), words.Reverse().ToString());

这没有用。显然,将 char 数组发送到 .ToString() 会返回“System.Char[]”并将其反转返回“System.Linq.Enumerable+d__a0`1[System.Char]”。

我了解到 .ToString() 无法处理 char 数组,因此我必须使用新的字符串构造函数,所以我将代码重写为它,现在它可以工作了:

        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 的摘要含糊地指出“返回一个表示当前对象的字符串”,这对我来说意味着我会得到一个表示我发送给它的 char 数组的字符串。我错过了什么?

最佳答案

虽然我找不到这方面的具体证据(到目前为止)。我相信你不能在 char 数组上使用它作为 Array types are reference types这意味着它们持有对实际值的引用,而不是每个字符的值。如我的评论所述,它返回“System.Char[]”;它返回 default value for ToString

编辑

这就是我要找的证据 https://stackoverflow.com/a/1533770/1324033

关于c# - 为什么我不能在 C# 中的 char 数组上使用 .ToString() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16720544/

相关文章:

c# - 线条旋转问题

c# - 修改私有(private)静态只读字段

c# - 多个操作的并行化和结果的连接

c++ - 如何在C++中设置一个字符?

c - 为什么我的代码中的第二个 strcpy() 导致停止工作?

python - 将我的整数放入 python 中的列表中

c# - LINQ 中的多个 .Where() 语句是性能问题吗?

c++ - vector 与数组(速度)

java - 方法(E[])不适用于参数(int[])

javascript - 搜索/过滤嵌套数组 Javascript/Lodash