int[] 一维数组
    int[,] 二维数组
    int[] [] 交错数组 又称“数组的数组”


      一维数组声明与初始化
    声明:  int[] a = new int[];

    声明与初始化:  int array1 = new int[] {1,2,3,4};
             int array1 = {1,2,3,4};   //  快捷声明和初始化的方式

    不初始化的情况下声明数组变量,但必须使用 new 运算符向此变量分配数组
        int[] array3;
        array3 = new int[] { 1, 3, 5, 7, 9 };   // OK
        // array3 = {1, 3, 5, 7, 9};    // Error


    int[,]   二维数组        int[, , , ] 三维数组            多维数组

    声明  int[,] array = new int[2,4]    int[,,,] array2 = new int[2,5,4]
    声明初始化   int array2D = new int[,] { [1,2}, {3,4}, {3,5}}
            int[,] array2Da = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };

           int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };

           int[, , ] array3D =new int[2,2,3]{ { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };

    如果选择在不初始化的情况下声明数组变量,则必须使用 new 运算符将数组赋予变量
        int[,] array5;
        array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; // OK
        //array5 = {{1,2}, {3,4}, {5,6}, {7,8}};   // Error


    交错数组是元素为数组的数组。 交错数组元素的维度和大小可以不同。

    声明:
    int[][] jaggedArray = new int[3][];

    初始化:
        jaggedArray[0] = new int[5];
        jaggedArray[1] = new int[4];
        jaggedArray[2] = new int[2];

    每个元素都是一维整数数组。 第一个元素是由 5 个整数组成的数组,第二个是由 4 个整数组成的数组,而第三个是由 2 个整数组成的数组。

         int[][] jaggedArray = new int[][]{
        new int[]{1,3,4,5},
        new int[] {0,2,4},
        new int[] {2,4}
        };

    或者

         int[][] jaggedArray ={
        new int[]{1,3,4,5},
        new int[] {0,2,4},
        new int[] {2,4}
        }



      多维数组与交错数组 理解上是没有多大的差异的,交错数组实际上实现了多维数组的差异化,使用的时候更加自由。
      在C#编译里面,多维数组和差异数组是无法隐性转换的。 作为参数的时候要注意统一。


    微软使用手册       https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/arrays/single-dimensional-arrays