WriteLine char [] +东西

时间:2013-07-25 12:33:36

标签: c# char

当我尝试通过

char[] word写入控制台时,会发生这种奇怪的事情
Console.WriteLine(word);

我得到了正确的结果,但是当我写

Console.WriteLine(word + " something");

我得到“System.Char[]某事”?

4 个答案:

答案 0 :(得分:3)

这是因为您的第一次尝试是写出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");

答案 1 :(得分:1)

这是因为

Console.WriteLine(word);

调用WriteLine重载,需要char[]

Console.WriteLine(word + " something");

ToString()上调用word,结果为System.Char[]

要正确输出,请尝试:

Console.WriteLine(new string(word) + " something");

答案 2 :(得分:0)

它发生的原因是字符串重载operator +就像那样。 如果你想以这种方式使用make,你必须首先用char []字创建一个字符串。 试试

Console.WriteLine(new string(word) + " something");

答案 3 :(得分:0)

Console.WriteLine()overload,其中char[]为参数。

"something"string literal,当您尝试连接stringchar[]时,.ToString()方法正在调用自动​​。

试试这个;

Console.WriteLine(new string(word) + " something");