我在以下行的旧代码中找到了:

protected bool[,] PixelsChecked;
[,]在这里是什么意思?

最佳答案

这是一个二维数组。

在.NET中,您可以使用两种类型的数组,它们不是一维的:

  • 多维数组:
    int[,] a;    // 2 dimensions
    int[,,] b;   // 3 dimensions, and so on
    
  • 锯齿状数组(数组数组):
    int[][] a;   // an array of arrays of ints
    int[][][] a; // an array of arrays of arrays of ints
    

  • 在两种情况下,您都需要先初始化变量,然后再使用它。

    在第一种情况下,用法也有所不同:
    int value = a[1, 2]; // note the comma, and single pair of brackets
    

    在第二种情况下,您需要分别处理每个阵列:
    int value = a[1][2]; // the first [1] will return an array, and then you take
                         // the 3rd element (0-based) of that
    

    还要记住,您可以只用一条语句来初始化多维数组:
    int[,] a = new int[10, 20];
    

    而锯齿状数组的单个语句将创建一个充满空引用的单个数组:
    int[][] a = new int[10][];
    

    您还需要将该数组的所有元素初始化为其对应的数组引用,这是使用LINQ在一条语句中完成此操作的一种快速方法:
    int[][] a = Enumerable.Range(0, 10).Select(new int[20]).ToArray();
    // 10 x 20
    

    另请参阅MSDN Page on the subject以获取更多信息。

    有趣的事实:与多维数组相比,JITter生成的访问锯齿数组的代码更快,请参见this question以获取更多信息。

    关于c# - bool [,]-此语法在C#中是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16634527/

    10-13 08:28