对于这个例子,我使用的是我的代码的简化版本,但它遵循相同的概念。我希望有一个BookStore,它有一个书籍列表,每本书都有一个页面列表,其中每个页面只有该页面的数据
public class BookStore
{
public class Book
{
public class Page
{
public string pageText;
public Page(string newText)
{
pageText = newText;
}
}
public List<Page> listofPages;
public void InsertPageAt0(string newPageText)
{
listofPages.Insert(0, new Page(newPageText));
}
}
public List<Book> listofBooks;
public void AddNewPage(int bookID, string pageText)
{
listofBooks[bookID].InsertPageAt0(pageText);
}
}
以下代码是我尝试填充列表的地方:
BookStore shop;
void Start()
{
shop.listofBooks.Add(new BookStore.Book());
shop.AddNewPage(0, "hellothere");
}
但是我收到了这个错误:
NullReferenceException: Object reference not set to an instance of an object
我的代码出了什么问题?
答案 0 :(得分:0)
您应首先创建对象的实例。 BookStore
和List<Book>
没有实例。你必须先创建这样的,
BookStore shop;
void Start()
{
shop = new BookStore();
shop.listofBooks = new List<Book>();
shop.listofBooks.Add(new BookStore.Book());
shop.AddNewPage(0, "hellothere");
}
希望有所帮助,