为什么char数组在控制台中显示内容,而string和int数组在c#中却不显示?

穆罕默德·莫塔兹(Mohamed Motaz)

当我在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);           
    }
广州7

Console.WriteLine一个特定的重载需要一个char[]最终将其传递给TextWriter.Write(char[]),并将其作为字符串写出。

请参阅referencesource

如果您进行了足够深入的研究,文档将对此进行提示。

Console.WriteLine(char[])

将指定的Unicode字符数组(后跟当前的行终止符)写入标准输出流。

TextWriter.Write(char[], int, int)

此方法将从位置处的缓冲区字符数组count向其中写入数据TextWriter字符index

此重载等效Write(Char[])和(buffer之间每个字符重载indexindex + count

您可以char[]通过编写以下内容看到本身没有什么特别之处

Console.WriteLine((object)char_array);  

这将调用Console.WriteLine(object)重载,即print System.Char[]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

.map() 通过 next.js 中的对象数组不显示在 html 中而是在控制台中?

为什么在控制台中打印和在标签中显示文件内容之间存在差异

在Safari的控制台中显示数组属性

为什么一个数组填充了数据,而另一个数组却不在控制台中:[]和[{..} {..}]给出了相同的数据集?

为什么在SQLAlchemy的Python控制台中的base.metadata.create_all(engine)中不显示表?

为什么Svg路径出现在控制台中而不显示在屏幕上?

为什么char []数组不显示任何输出?

Java Jade:不显示在控制台中

有人能告诉我为什么它在控制台中不显示任何内容吗??我想获得输入值。我必须使用表格吗?

为什么ActivityViewController在控制台中显示自动约束错误?

为什么我的print()命令在控制台中显示双打?

为什么在控制台上不显示char默认值?

控制台输出不显示数组元素的数量。无法在代码中访问数组元素

Laravel 在控制台中从表中显示数组,即使是空值

为什么println不显示我的数组

如何使用C#在控制台中显示是/否提示?

数据显示在控制台中而不显示在屏幕上-reactjs

为什么使用jquery在控制台日志中不显示JSON数据?

C#从控制台读取密码而不显示密码

数组有记录,但在控制台中显示数组长度0

程序将文件的内容读入数组,并显示控制台和写入文件

Google Chrome在控制台中不显示错误

F#-套装在控制台中不显示

Intellij在控制台中不显示测试结果

FirePHP在控制台中不显示某些日志

Docker/Symfony/PhpUnit - 在容器中运行 PhpUnit 时,控制台中不显示日志

为什么字符串数组的最后一个索引在C中什么都不显示?

如何在C#的TextBox中显示char数组?

C#填充的数组属性在控制台应用程序调用程序中显示为“ null”