C# WriteLine char[]和#x2B;某物
为什么会发生这种奇怪的事情,当我试图通过C# WriteLine char[]和#x2B;某物,c#,char,C#,Char,为什么会发生这种奇怪的事情,当我试图通过 Console.WriteLine(word); 我得到了一个正确的结果,但是当我写 Console.WriteLine(word + " something"); 我得到“System.Char[]something”这是因为 Console.WriteLine(word); 它调用重载,该重载接受一个char[] 在 它在word上调用ToString(),结果是System.Char[] 要正确输出,请尝试: Console.WriteLin
Console.WriteLine(word);
我得到了一个正确的结果,但是当我写
Console.WriteLine(word + " something");
我得到“System.Char[]
something”这是因为
Console.WriteLine(word);
它调用重载,该重载接受一个char[]
在
它在word
上调用ToString()
,结果是System.Char[]
要正确输出,请尝试:
Console.WriteLine(new string(word) + " something");
这是因为您的第一次尝试是写出一个
char
数组,它控制台。WriteLine
使用重载接受有效输入
Console.WriteLine(word);
但是您的第二个结果似乎是错误的,因为您将char[]
与字符串文字相结合。因此,Console.WriteLine
尝试通过以下操作使您的char[]
也成为字符串:
Console.WriteLine(word.ToString() + " something");
请注意,它在单词
(内部)上调用.ToString()
,使其成为字符串。char[]
上的ToString
方法返回它的类型而不是它的值。因此给你一个奇怪的结果
您可以通过执行以下操作来修复它:
Console.WriteLine(new string(word) + " something");
发生这种情况的原因是string重载运算符+使其表现为那样。
如果您想使用这种方式,您必须首先从char[]单词中创建一个字符串。
试一试
Console.WriteLine()
有一个参数,它将char[]
作为参数
“something”
是一个,当您尝试连接字符串
和字符[]
时,.ToString()
方法正在调用auto
试试这个
Console.WriteLine(new string(word) + " something");
你确定“字符串(单词)”有效吗?因为对我来说,它说“无效的表达式术语‘string’”,新字符串(单词)应该
Console.WriteLine(new string(word) + " something");
Console.WriteLine(new string(word) + " something");