Array.Rank 得到的是数组的维数,你这里的 arr 是个二维数组,所以结果是 2。
int[,] arr = new int[9, 9]; 这也是二维数组,结果也是 2。
int[,,] arr = new int[4, 2, 8]; 这也是三维数组,结果是 3。
Array.GetUpperBound() 得到的是指定维度最后一个元素的索引。
你要是想得到所谓的行数和列数,应该是:
int row = arr.GetLength(0); // 返回第一维的长度(所谓的“行数”)
int col = arr.GetLength(1); // 返回第二维的长度(所谓的“列数”)
长度指所有元素的个数,length函数获取