永远不会将字段分配给,并始终将其默认值设置为null

时间:2018-03-08 18:45:29

标签: c# oop

我在我的代码中使用以下数组(注册是我的一个类)

Enrolment[] enrolment;

我知道这里没有初始化数组,这对错误有意义。但是,数组在以下代码块中初始化。

public void AddStudent(Person studentName)
    {
        try
        {
            for (int i = 0; i < enrolment.Length; i++)
            {
                if (RelevantCourse.CourseCode == null)
                {
                    throw new Exception("This section has not been added to a course.");
                }
                else if (enrolment.Length == MaxNumberOfStudents)
                {
                    throw new Exception("Cannot add this student to section. Section is full.");
                }
            }
            int currentLength = enrolment.Length;
            enrolment[currentLength] = new Enrolment(SectionId, studentName, RelevantCourse.NoOfEvaluations);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }

此代码块运行try-catch块,以查看将此Enrolment对象添加到enrolment数组是否会出现任何错误。 enrolment数组显示一个错误,指出&#34;字段从未分配给,并且将始终具有其默认值null&#34;。编译代码时,它显然会引发空引用异常。

为什么它的值为null?有人可以指引我在正确的方向找到解决方案吗?

1 个答案:

答案 0 :(得分:1)

你必须初始化数组

Enrollment[] enrollments = new Enrollment[{lengthofarray}];

您无法添加内容或获取包含数组的未初始化对象的属性