2011-12-28 30 views
2

我想這樣的代碼:在c#中的對象的動態數組(或列表)?

private List<book> books; 
//private book[] books; 
. 
. 
. 
private void button1_Click(object sender, EventArgs e) 
     { 
      books.Add(new book(book_name.Text)); 
      //book[0]=new book(book_name.Text); 
     } 

,但我得到這個錯誤:

'Object reference not set to an instance of an object.'

我該怎麼辦?我想通過事件動態創建對象。

+1

讀取錯誤消息,愛的錯誤消息。這個特定的錯誤意味着你正在執行'expr.member',其中'expr'的計算結果爲null。在這種情況下,「書」是因爲它從來沒有被賦予一個值(一個*新的*列表,也許?)。 – 2011-12-28 03:27:44

+0

(是否有一個通用的NullReferenceException後,我們可以關閉所有這些重複的?: - /) – 2011-12-28 03:29:15

+0

http://stackoverflow.com/questions/5620678/nullreferenceexception-no-stack-trace-where-to-start,http: //stackoverflow.com/questions/4719047/why-doesnt-nullreferenceexception-contain-information-about-what-is-null,http://stackoverflow.com/questions/1031336/what-is-the-meaning-of-的NullReferenceException – 2011-12-28 03:32:30

回答

6

需要初始化列表:

private List<book> books = new List<book>(); 
2

您需要實例books第一,像這樣:

private List<book> books = new List<book>(); 
0

當你說

private List<book> books; 

它只創建一個參考List類型爲空值的類型。因此,當您嘗試調用List結構的成員函數時,它會提供一個參考設置爲null的錯誤。

需要初始化使用另一份聲明變量在構造函數中

books = new List<book>();