为什么当我尝试通过以下方式将 char[] word 写入控制台时会发生这种奇怪的事情

Console.WriteLine(word);

我得到了正确的结果,但是当我写
Console.WriteLine(word + " something");

我得到“System.Char[] 的东西”?

最佳答案

发生这种情况是因为您的第一次尝试是写出一个 char 数组,Console.WriteLine 使用重载将其作为有效输入接受。

Console.WriteLine(word);

但是您的第二个结果似乎是错误的,因为您将 char[] 与字符串文字组合在一起。因此 Console.WriteLine 尝试通过执行以下操作使您的 char[] 也是一个字符串:
Console.WriteLine(word.ToString() + " something");

请注意,它在 .ToString() 上调用 word (在内部)使其成为 stringToString 上的 char[] 方法返回它的 类型 而不是它的值。从而给你奇怪的结果。

您可以通过执行以下操作来修复它:
Console.WriteLine(new string(word) + " something");

关于c# - WriteLine char[ ] + 东西,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17858140/

10-13 05:53