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");