当我在int或字符串数组上运行Console.WriteLine()时,它将打印(System.String []),(System.Int32 [])。但是我用char数组执行此操作时,它显示的内容就好像它们是字符串一样。这种奇怪的行为是什么?(ihgfedcba)是它显示的内容。谁能解释为什么会这样?
public static void Test(){
string[] words_array = new string[9];
words_array[0] = "football";
words_array[1] = "handball";
words_array[2] = "Harry Potter";
words_array[3] = "Prometheus";
words_array[4] = "strengh";
words_array[5] = "Muscles";
words_array[6] = "weakness";
words_array[7] = "beauty";
words_array[8] = "Ali";
System.Console.WriteLine(words_array);
int[] int_array = new int[9];
int_array[0] = 0;
int_array[1] = 1;
int_array[2] = 2;
int_array[3] = 3;
int_array[4] = 4;
int_array[5] = 5;
int_array[6] = 6;
int_array[7] = 7;
int_array[8] = 8;
System.Console.WriteLine(int_array);
char[] char_array = new char[9];
char_array[0] = 'i';
char_array[1] = 'h';
char_array[2] = 'g';
char_array[3] = 'f';
char_array[4] = 'e';
char_array[5] = 'd';
char_array[6] = 'c';
char_array[7] = 'b';
char_array[8] = 'a';
System.Console.WriteLine(char_array);
}
Console.WriteLine
有一个特定的重载需要一个char[]
。最终将其传递给TextWriter.Write(char[])
,并将其作为字符串写出。
请参阅referencesource。
如果您进行了足够深入的研究,文档将对此进行提示。
将指定的Unicode字符数组(后跟当前的行终止符)写入标准输出流。
TextWriter.Write(char[], int, int)
:
此方法将从位置处的缓冲区字符数组
count
向其中写入数据TextWriter
字符index
。此重载等效
Write(Char[])
于和()buffer
之间每个字符的重载。index
index + count
您可以char[]
通过编写以下内容看到本身没有什么特别之处:
Console.WriteLine((object)char_array);
这将调用Console.WriteLine(object)
重载,即print System.Char[]
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句