class Program
    {
        static void Main(string[] args)
        {
            char[] myString1={'a','b','c','d','e','f'};
             Console.WriteLine(myString1);
            //输出abcdef            int[] myString2 ={ 1, 2, 3, 4, 5 };
            Console.WriteLine(myString2);             
            //我知道整形数组不能这么输出,得用个循环,我故意的
            //输出System.Int32[],WHY???????
            //整形数组的数组名代表什么?
            Console.ReadKey();
        }
    }

解决方案 »

  1.   

    需要一个string类型,而提供的是其他类型,Console.WriteLine会自动调用这个参数的ToString()方法,这两个例子中都调用的是Array的ToString(),只不过,char类型的数组,将字符连接形成一个字符串,一般是有意义的操作,而将int的字符表示形式连接起来,一般无法得到有意义的字符串,所以,Array的ToString()对于int类型,只是如Object的ToString()实现一样,返回一个类型名。
      

  2.   

    Console.WriteLine(myString1);
    这一句是调用了Console.WriteLine (Char[]) ,所以能够将数组内容输出。Console.WriteLine(myString2);
    Console.WriteLine()没有提供输入int[]的重载,所以这一句调用Console.WriteLine (Object) ,实际上里面会调用到myString2.ToString();
    myString2是一个Array的实例,因为Array没有重写ToString()方法,它实际上调用的是基类Object的方法,这个方法返回对象的类型。
      

  3.   

    楼主 按你这么说 “1” “2” “3”这样的格式就可以输出了 不行就后面带个Tostring()