我无法弄清楚为什么在以下代码段中出现超出范围的异常。 _maxRowIndex_maxColIndex的值分别是50。当rowcol都等于0时,第一次抛出该异常。我不明白为什么0, 0会超出数组的范围。

    _cells = new ToolBarButton[_maxRowIndex, _maxColIndex];
    .
    .
    .
    for (int col = 0; col <= _maxColIndex; col++) {
                    for (int row = 0; row <= _maxRowIndex;  row++)
                    {

                      if (_cells[row, col] == null)
                        {
                           PopulateCell(toolBarbutton, row, col);
                        }

                    }
                }

最佳答案

如果您希望最大索引为5,则意味着数组的长度必须为6,因为第一个元素的索引为0。

因此,更改:

_cells = new ToolBarButton[_maxRowIndex, _maxColIndex];


至:

_cells = new ToolBarButton[_maxRowIndex+1, _maxColIndex+1];

08-17 14:42