楼主你错在了a.Length
楼主你定义的是二维数组 二维数组的长度是 其第1维和第2维的乘积 很明显这里a.Length的值为 9 
所以下标越界 
想获得二维数组的 第一维长度要使用 a.GeLength(0)方法获得第一维的长度 0就代表第一维的长度 在这里是3
以次类推 想获得二维就是a.GetLength(1)
修改后的代码如下:              int[,] a = new int[3, 3];
            Console.WriteLine("请输入数据");
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    a[i, j] = Convert.ToInt32(Console.ReadLine());
                }
            }
            Console.WriteLine("下列就是数组");
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    Console.WriteLine("{0} ", a[i,j]);
                }
                Console.WriteLine();
            }
            Console.Read(); 

解决方案 »

  1.   

                for (int i = 0; i  < a.GetLength(0); ; i++) 
                { 
                    for (int j = 0; j  < a.GetLength(1); ; j++) 
                    { 
                        a[i, j] = Convert.ToInt32(Console.ReadLine()); 
                    } 
                }