2012-01-23 31 views
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); 
    } 
} 

調用它作爲以下工作

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); 

當我有這樣調用(只有一個類添加)

Student student = new Student(new Class("Masters","Accounts")); 

我得到的錯誤。 謝謝。

+0

你可能想在這裏發佈錯誤消息。 –

+0

1.類User的代碼在哪裏? 2.你的目標是什麼?只是不要擺脫錯誤? –

+1

@MAKKAM - 我已經在構造函數中發佈了錯誤消息。 //錯誤:對象引用未設置爲對象的實例。 – peacefulmember

回答

6

您與類超載需要添加類之前初始化類。試試這個:

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); 
    } 
} 
+0

糟糕!我的錯。非常感謝。這解決了錯誤。 – peacefulmember

0

在嘗試向其中添加對象之前,您需要初始化Classes

3

在第二構造,你永遠不會初始化Classes

2

this.Classes未初始化:

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); 
    } 
}