构造函数重载

pea*_*ber 0 .net c#-4.0

任何人都可以在这里提出错误的建议吗?

public class Student 
{
    public List<Class> Classes { get; set; }

    public Student(List<Class> classes)
    {
       this.Classes = classes;
    }
    public Student(Class class) 
    {
        //This does not work
        //Error: Object reference not set to an instance of an object.
        this.Classes.Add(class);
    }
}
Run Code Online (Sandbox Code Playgroud)

将其称为以下作品

var classes = new List<Classes>();
classes.Add(new Class("English", "Elective"));
classes.Add(new Class("Math", "Core"));
..more classes to add
Student student = new Student(classes);
Run Code Online (Sandbox Code Playgroud)

当我这样打电话时(只需要添加一个课程)

Student student = new Student(new Class("Masters","Accounts"));
Run Code Online (Sandbox Code Playgroud)

我收到错误.谢谢.

jru*_*ell 6

您对Class的重载需要在添加类之前初始化类.试试这个:

public class Student 
{
    public List<Class> Classes { get; set; }

    public Student(List<Class> classes)
    {
       this.Classes = classes;
    }
    public Student(Class class) 
    {
        this.Classes = new List<Class>();
        this.Classes.Add(class);
    }
}
Run Code Online (Sandbox Code Playgroud)