[英]bool [,] - What does this syntax mean in c#?
我在遗留代码中找到以下行:
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
有趣的事实:JITter生成更快的代码来访问锯齿状数组,而不是多维数组,请参阅此问题以获取更多信息。
[,]
是一个二维数组。
您可以像这样初始化它:
protected bool[,] PixelsChecked = new bool[Width, Height];
这是你访问它的方式:
bool leftTop = PixelsChecked[0, 0];
它基本上是一个带有值的矩形,您可以使用[x,y]
访问它们。
您还可以创建三维和更多维数组
protected bool[,,] Cube = new bool[5,5,5];
protected bool[,,,] _4dimensional = new bool[10,10,10,10];
数组可以有多个维度。
在这种情况下,它是二维数组。 数组可以有多个维度。 使用C#中的特殊语法可以使用多维数组。
对于语法用法,如果要声明n-diamensional数组 ,则应使用逗号n-1
次。
当您使用bool[,] PixelsChecked
它会声明名为PixelsChecked
的二维数组,并将其元素键入为boolean
。
例;
bool[,] PixelsChecked = new bool[2,2];
PixelsChecked[0, 0] = true;
PixelsChecked[0, 1] = false;
PixelsChecked[1, 0] = true;
PixelsChecked[1, 1] = false;
请记住,您需要在使用之前初始化阵列。
例如 ,二维阵列模拟平面,而三维阵列模拟立方体或其他结构。
bool[,]
是bool
s的二维数组。
基本上,而不是像这样的数组:
true, false, false, true, false, true, etc.
它的结构如下:
true, false, false, true, false, true, etc.
true, false, false, true, false, true, etc.
true, false, false, true, false, true, etc.
true, false, false, true, false, true, etc.
true, false, false, true, false, true, etc.
true, false, false, true, false, true, etc.
etc.
所以你可以访问,让我们说第二个项目向下,第三个项目正确,如下所示:
arrayName[1,2];
还有其他方法可以做到这一点,比如制作一个数组数组,但是它保持一个恒定的长度,并且更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.