Asp.net 对象引用未设置为对象的实例-但它是?
我正在用asp创建一个数独游戏,我在一些课程上遇到了问题。当我创建一个函数来显示文本框中的所有数字时,会出现以下错误:对象引用未设置为对象的实例。我知道这意味着我的对象为空,但这是我的代码。我得到错误的那一行是:stbNumber.setNumber(currentSolution[3*I+m,3*k+n])Asp.net 对象引用未设置为对象的实例-但它是?,asp.net,class,Asp.net,Class,我正在用asp创建一个数独游戏,我在一些课程上遇到了问题。当我创建一个函数来显示文本框中的所有数字时,会出现以下错误:对象引用未设置为对象的实例。我知道这意味着我的对象为空,但这是我的代码。我得到错误的那一行是:stbNumber.setNumber(currentSolution[3*I+m,3*k+n]) 私人SudokuTextBox机顶盒; 私人谜题; 私人信箱; 专用号码stbNumber; public void displayAll(对象发送方,事件参数e) { 拼图=新拼图();
私人SudokuTextBox机顶盒;
私人谜题;
私人信箱;
专用号码stbNumber;
public void displayAll(对象发送方,事件参数e)
{
拼图=新拼图();
对于(int i=0;i<3;i++)
{
对于(int k=0;k<3;k++)
{
box=新box();
对于(int m=0;m<3;m++)
{
对于(int n=0;n<3;n++)
{
stbNumber=新编号();
stb=新的SudokuTextBox();
stbNumber.setNumber(当前解决方案[3*i+m,3*k+n]);
stb.setTextBoxValue(stbNumber);
机顶盒设置可见性(真);
框。设置项(stb,m,n);
}//结束
}//第三名结束
拼图。设置项(框,i,k);
}//第二个结束
}//先结束
生成框();
}
我在代码的最顶端初始化了stbNumber,并确保currentSolution不为null或空。因此,我不确定我做错了什么。我还应该提到,我在其他地方有生成新谜题的精确代码,它工作得很好,但当我单击按钮时,这部分代码会被特别调用。您基本上有3种可能性:
stbNumber.setNumber(currentSolution[3 * i + m, 3 * k + n]);
stbNumber
可以为空currentSolution
可能为空 stbNumber = new Number();
stb = new SudokuTextBox();
if ( currentSolution != null )
{
// if the item does not exist, new it up
if ( currentSolution[3 * i + m, 3 * k + n] == null ) currentSolution[3 * i + m, 3 * k + n] = new someObject()
stbNumber.setNumber(currentSolution[3 * i + m, 3 * k + n]);
stb.setTextBoxValue(stbNumber);
}
else
{
WriteSomeErrorMessage("currentSolution is null");
}
你能在确保currentSolution不为null的地方发布代码吗?我找到了罪魁祸首。我在代码的第一页加载中调用了一个名为puzzle的类(不是在后面的帖子中)。但是,当我单击使用此代码的按钮时,它会使谜题对象看起来像是空的。发布的第一个代码是一个在页面加载时调用的函数,这是在按下按钮时调用的代码。{box=new box();stb=new SudokuTextBox();for(int I=0;I<3;I++){for(int k=0;k<3;k++){box=puzzle.getItem(i,k);for(int m=0;m<3;m++){for(int n=0;n<3;n++){stb=box.getItem(m,n);stb.setVisibility(true)}//end forth for}//end third for}//end second for}//end first for}
stbNumber = new Number();
stb = new SudokuTextBox();
if ( currentSolution != null )
{
// if the item does not exist, new it up
if ( currentSolution[3 * i + m, 3 * k + n] == null ) currentSolution[3 * i + m, 3 * k + n] = new someObject()
stbNumber.setNumber(currentSolution[3 * i + m, 3 * k + n]);
stb.setTextBoxValue(stbNumber);
}
else
{
WriteSomeErrorMessage("currentSolution is null");
}