为什么我有这个错误NullReferenceException

本文关键字:错误 NullReferenceException 为什么 | 更新日期: 2023-09-27 17:58:17

为什么在FundList.childs.Add(基金)上出现此错误?

中发生类型为"System.NullReferenceException"的异常ICRC.HRSSD.BAL.dll,但未在用户代码中处理

我的模型"任务树"是一个有id、name和children的类,children是其他任务树的列表。。。我需要那样做,因为我必须做一棵树。。。

    public List<TaskTree> getTaskTree(int IdTeam)
    {
        using (HRSSD_DATA context = new HRSSD_DATA())
        {
         List<TaskTree> ListAll = new List<TaskTree>();
            var person = context.AR_PERSON.Where(a => a.STATUS == "A" && a.CR_GROUP.REF==IdTeam).ToList();
            foreach (var item in person)
            {
                TaskTree FundList = new TaskTree();
                FundList.id = item.REF;
                FundList.name = item.FULL_NAME;
                var task = context.TASK.Where(a => a.IdCurrentOfficer == item.REF && a.BASE_ENTITY_TYPE == 100 && a.OPEN_IND == 1 && a.ACTIVE_TASK == 1 && a.TEMPLATE_IND == 0&& a.TASK_STATUS_REF != 114).ToList();
                foreach (var tasks in task)
                {
                    TaskTree Fund = new TaskTree();
                    Fund.name = tasks.TASK_TITLE;
                    Fund.id = tasks.TASK_NO;
                    FundList.children.Add(Fund);
                }
                ListAll.Add(FundList);
            }
            return ListAll;
        }
    }

和我的任务树类

public class TaskTree
{
    public int id;
    public string name;
    public List<TaskTree> children;
}

为什么我有这个错误NullReferenceException

请尝试使用以下代码片段。

public List<TaskTree> getTaskTree(int IdTeam)
{
    using (HRSSD_DATA context = new HRSSD_DATA())
    {
        List<TaskTree> ListAll = new List<TaskTree>();
        var person = context.AR_PERSON.Where(a => a.STATUS == "A" && a.CR_GROUP.REF == IdTeam).ToList();
        if (person != null)
        {
            foreach (var item in person)
            {
                TaskTree FundList = new TaskTree();
                FundList.id = item.REF;
                FundList.name = item.FULL_NAME;
                var task = context.TASK.Where(a => a.IdCurrentOfficer == item.REF && a.BASE_ENTITY_TYPE == 100 && a.OPEN_IND == 1 && a.ACTIVE_TASK == 1 && a.TEMPLATE_IND == 0 && a.TASK_STATUS_REF != 114).ToList();
                if (task != null)
                {
                    // Please check below line of code 
                    FundList.children = new List<TaskTree>();
                    foreach (var tasks in task)
                    {
                        TaskTree Fund = new TaskTree();
                        Fund.name = tasks.TASK_TITLE;
                        Fund.id = tasks.TASK_NO;
                        FundList.children.add(Fund);
                    }
                }
                ListAll.Add(FundList);
            }
        }
        return ListAll;
    }
}