char[] word
为什么当我尝试通过以下方式写入控制台时会发生这种奇怪的事情
Console.WriteLine(word);
我得到了正确的结果,但是当我写
Console.WriteLine(word + " something");
我得到“System.Char[]
东西”?
发生这种情况是因为您的第一次尝试是写出一个char
数组,该数组Console.WriteLine
使用重载作为有效输入。
Console.WriteLine(word);
但是您的第二个结果似乎是错误的,因为您将 achar[]
与字符串文字组合在一起。因此,通过执行以下Console.WriteLine
操作尝试使您char[]
也成为字符串:
Console.WriteLine(word.ToString() + " something");
.ToString()
请注意,它调用word
(内部)使其成为string
. 返回的ToString
方法是类型而不是值。从而给你奇怪的结果。char[]
您可以通过以下方式修复它:
Console.WriteLine(new string(word) + " something");
这是因为对于
Console.WriteLine(word);
它调用WriteLine
需要 a 的重载char[]
。
在
Console.WriteLine(word + " something");
ToString()
它的呼吁word
导致System.Char[]
要正确输出,请尝试:
Console.WriteLine(new string(word) + " something");
它发生的原因是字符串重载 operator+ 表现得像那样。如果您想以这种方式使用它,您必须首先从您的 char[] 单词中创建一个字符串。尝试
Console.WriteLine(new string(word) + " something");