2012-11-14 40 views
-4

你好我得到我的程序下面的錯誤,我也不太清楚爲什麼C#對象引用不設置到對象

對象引用不設置到對象的實例的實例。

具體地說此代碼塊 「上http://pastebin.com/2UwGrvvB代碼」

public Cart(Book[] _book) 
     { 
      for (int i = 0; i < _bookList.Length; i++) 
      { 
       if (_book[i] != null) 
       { 
        _bookList[bookIndex] = new Book(_book[i].title, _book[i].author, _book[i].isbn, _book[i].price); 
        bookIndex++; 
       } 
      } 
     } 
+0

你有沒有通過退一步,尋找一個空引用? –

+0

那一行什麼對象呢調試點你在哪裏? –

+3

爲什麼你遍歷'_bookList'但檢查'所有腦幹_book'? –

回答

1

它因爲你null過去了_book變量(的Main()線1)調用構造失敗。 在SO上粘貼相關代碼而不是PasteBin。

+0

我不看PasteBin,但第二部分+1。 – Jodrell

+1

好的,我確實看過PasteBin,你說得對。 – Jodrell

0

只是幾個建議:

  • 使用​​代替_book爲對性能的第一個字母排列
  • 相反for(int i = 0; i < _book.Lenght; i++)
  • 使用大寫的for(int i = 0; i < 4; i++)使用
  • 你並不需要使用StringBuilder類在這種情況下
  • listOfBooks是一個屬性

關於你的第二個問題「我將如何去除init中的null並允許sb.Append("Total cost: " + _cart.totalCost());要看到它已經被一個if語句中初始化?」

Nullable類是一個不錯的選擇,避免這種情況。

相關問題