You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何C#中char数组打印元素值,其他数组打印数据类型?

char数组与int数组Console.WriteLine输出差异原因

先看示例代码:

char[] c = new char[] {'a','b','c'};
int[] i = new int[] {1, 2, 3};

System.Console.WriteLine(c);
System.Console.WriteLine(i);

运行这段代码时,char数组c会输出abc,而int数组i会输出System.Int32[],差异的核心原因是Console.WriteLine的重载机制:

  • 针对char[]类型,.NET提供了专门的Console.WriteLine(char[] value)重载方法,这个方法会直接把字符数组转成对应的字符串输出内容。
  • 对于int[]这类其他类型的数组,没有专门的重载方法,此时会调用接受object参数的通用重载Console.WriteLine(object value)。这个重载会调用对象默认的ToString()方法,而数组的默认ToString()实现只会返回自身的类型全称,不会遍历输出元素。

如果想要输出int数组的元素,可以手动将数组转换为字符串,比如用string.Join:

System.Console.WriteLine(string.Join(", ", i));

内容的提问来源于stack exchange,提问作者prakash m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:11:02