一直报错, 求大神帮忙看看什么情况
      
  public static void DepartmentMz(List<Time_Model> lmz, List<Button> LB, int Xb)
        {            for (int i = 0; i < lmz.Count; i++)
            {
                if (i == 0 + (2 * Xb) && (2 * Xb + 0) < lmz.Count)
                {                    LB[0].Text = lmz[i].type.ToString();
                    //LB[0].Tag = Ltd[i].id;
                    LB[0].Show();
                }
                else if (lmz.Count <= (2 * Xb + 0))
                {
                    LB[0].Hide();
                }
                if (i == 1 + (2 * Xb) && (2 * Xb + 1) < lmz.Count)
                {
                    LB[1].Text = lmz[i].type.ToString();
                    // LB[1].Tag = Ltd[i].id;
                    LB[1].Show();
                }
                else if (lmz.Count <= (2 * Xb + 1))
                {
                    LB[1].Hide();
                }
              
            }
        }在 BLL.dll 中发生,但未在用户代码中进行处理其他信息: 未将对象引用设置到对象的实例。

解决方案 »

  1.   

    为什么不是lmz 为空?
      

  2.   

    类似于这种函数内的System.NullReferenceException,我个人做法是先在函数内,或在调用此函数前把重要参数打印出来。
    List<Time_Model> lmz, 
    List<Button> LB, 
    int Xb
    这三个参数,一般打印 lmz 这个。因为如果是LB 。XB为空,那么应该是报 函数引用参数的错误。反正参数也不多哈哈,你一个一个输出一下,不就很明白了吗。
      

  3.   

    为什么不是lmz 为空?
    很皮
      

  4.   

    打断点,跟一下就知道了……
    所有“.”之前的对象都有可能为null了。
      

  5.   

    什么是对象,在你的示例中,lmz、LB是对象,lmz[i]、LB[i]也是对象
    什么是未将对象引用设置到对象的示例,就是这个对象不存在,也就是null,也就是没有new
    Button btn = new Button();  btn不为空
    Button btn ;  btn为空  此时  如果btn.Text="提交"; 那就是未将对象引用到实例
    在你的示例当中,如果lmz和LB不是null,那就是lmz[i]或者LB[i]有null
    断点一下,查看便知
      

  6.   

    规范的做法不是应该先判断是不是NULL么,如果是null应该给提示或者进入相应的为null逻辑,报错或者是什么
    null分两种情况,一个是count = 0 一个是对象为空,这些都要做逻辑判断的,甚至可以封装起来嘛
      

  7.   

    LB为null