Asp.net 从2个文本框读取时,对象引用未设置为对象的实例 for(int i=0;i

Asp.net 从2个文本框读取时,对象引用未设置为对象的实例 for(int i=0;i,asp.net,Asp.net,System.NullReferenceException:对象引用未设置为对象的实例 由于某种原因,我出现了这个错误,但我似乎没有弄清楚我的错误所在。很可能FindControl没有获取文本框。设置断点并查看FindControl()。还要确保您使用的ain FindControl的ID是正确的。您的问题部分是由于多个链式差异造成的,例如: for (int i = 0; i < parts.Count; i++) { if (!((part

System.NullReferenceException:对象引用未设置为对象的实例


由于某种原因,我出现了这个错误,但我似乎没有弄清楚我的错误所在。

很可能FindControl没有获取文本框。设置断点并查看
FindControl()
。还要确保您使用的ain FindControl的ID是正确的。

您的问题部分是由于多个链式差异造成的,例如:

   for (int i = 0; i < parts.Count; i++)
        {
            if (!((part)parts[i]).deleteUsed)
                ((part)parts[i]).hints = ((TextBox)partsView.Rows[i].Cells[4].FindControl("textBox")).Text;
            ((part)parts[i]).PartsWaiting = ((TextBox)partsView.Rows[i].Cells[5].FindControl("textBox1")).Text;
        }
如果其中一个方法返回null,您就无法轻松确定发生了什么

除非你非常确定自己在做什么,否则我会将上述内容分为以下两种:

  • 分隔行并指定中间变量。空值将变为明显的wrt。它所在的线路
  • 一组函数,在解析null时取消引用并抛出
    NullPtrException
    。同样,你的冒犯路线会立即变得明显

  • 您会注意到,上述情况并不是您当前的问题所特有的。相反,当您无法确保链接方法在某个阶段不会返回null时,这是一种有用的做法。

    添加断点,逐步完成循环,并在文本框代码上添加快速监视。您绝对确定行将有6个单元格吗?确定!!非常感谢……我马上就去。是的,这一行有6个单元格。好的。我会这样做,我非常确定当涉及到两个不同的复选框时,id也是正确的
    a.getB().getC().getD()