【问题标题】:why char array only printing values it contain other arrays are printing their datatypes in C#?为什么 char 数组只打印它包含其他数组的值在 C# 中打印它们的数据类型?
【发布时间】:2023-01-05 19:13:14
【问题描述】:

char [] c = new char [] {'a','b','c'};

int [] i =new int[] {1,2,3};

System.Console.WriteLine(c);

System.Console.WriteLine(i);

在此代码中,char 数组 (c) 的 print 语句将其值打印为 'a'、'b'、'c',但在

int array 它打印数组的数据类型。这是什么原因?

【问题讨论】:

  • WriteLine 写入字符串。要获取一个字符串,如果它不是首先调用 ToString() 方法。然后取决于您所看到的 ToString() 的实现。默认实现是返回类型名称,对于复杂类型,字符串的外观并不明显,所以没关系。但是对于基本数据类型,通常实现为“真正的”类型转换。

标签: c# arrays asp.net pointers overloading


【解决方案1】:

当使用不同于 char[] 的对象调用 Console.WriteLine() 时,它会调用 ToString() 和该对象。

字符串是 String 类型的对象,其值为文本。在内部,文本存储为 Char 对象的顺序只读集合。

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

当您调用Console.WriteLine(c)时,您已经提供了一个char[],它将被复制到控制台流。

但是当你调用Console.WriteLine(i)时,你实际上调用的是Console.WriteLine(i.ToString()),而i.ToString()是返回数据类型的Array.ToString()

【讨论】:

    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2017-06-12
    相关资源
    最近更新 更多