C# 空引用异常数组2d

C# 空引用异常数组2d,c#,function,multidimensional-array,nullreferenceexception,C#,Function,Multidimensional Array,Nullreferenceexception,我得到了这个类,它有一个2dArray,当我试图填充它时,我得到了一个错误NullReferenceException:objectreference未设置为对象的实例 AdminGrid.FullNot(Int32行、Int32列、Int32全、System.String片段名称) 公共类AdminGrid:MonoBehavior{ 公共int numRows; 公共国际专栏; 私有int[,]阵列网格; //用于初始化 void Init(){ numColumns=6; numRows=

我得到了这个类,它有一个2dArray,当我试图填充它时,我得到了一个错误NullReferenceException:objectreference未设置为对象的实例 AdminGrid.FullNot(Int32行、Int32列、Int32全、System.String片段名称)

公共类AdminGrid:MonoBehavior{ 公共int numRows; 公共国际专栏; 私有int[,]阵列网格; //用于初始化 void Init(){ numColumns=6; numRows=6; ArrayGrid=newint[numRows,numColumns]; 对于(int y=0;y 知道为什么会这样吗?正如您所看到的,我的数组中填充了0,我认为这可以解决这个问题,但似乎没有,而且我确保值在数组中,这意味着列和行的最大值为5,5

我用的是Unity引擎,所以Init//实际上叫做start


游戏开始时它会被调用,这就是为什么我很确定它被调用的原因。

ArrayGrid
是一个引用类型的字段,因此默认为空,所以我的结论很简单:您没有调用
Init
。所以:调用
Init

用AdminGrid重命名Init,一切都会好起来的)


在调用FullNot方法的地方,请添加代码您在任何时候调用过Init吗?在调用
Init
之前是否调用
FullNot
?@Makenshi-正如其他人已经问过的那样-请在调用
FullNot
的地方以及前面几行(如果可能,也在调用
Init
的地方)发布代码。抱歉,我添加了我使用的引擎Unity,所以Init会自动调用,所以毫无疑问它会被调用,或者我认为它似乎只是打印了2个值。我很确定它会被调用it@Makenshi它叫什么名字?如果我被调用,数组将是非空的。这不是这里的参考;毫无疑问……好吧,错误是Init与另一个Init同时被调用,所以它用垃圾填充数组
public class AdminGrid : MonoBehaviour {

    public int numRows;
    public int numColumns;
    private int[,] ArrayGrid;
    // Use this for initialization
    void Init() {
                numColumns = 6;
                numRows = 6;
        ArrayGrid = new int[numRows,numColumns];

        for(int y = 0;y < numRows;y++)
        {
            for(int x = 0;x < numColumns;x++)
            {
                ArrayGrid[y,x] = 0; 
            }
        }
    }

    public void FullNot(int Row,int Column,int Full,string PieceName)
    {   
        ArrayGrid[Row,Column] = 1;//Error is here
    }

    public int WhatsonGrid(int Row,int Col)
    {
        return ArrayGrid[Row,Col];
    }
}

public AdminGrid()
{
...
}