如何写入另一个 class 的实例中的列表?

How can I write to a list that is inside an instance of another class?

对于这个例子,我使用的是我的代码的简化版本,但它遵循相同的概念。我想要一个 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

我的代码有什么问题?

您应该首先创建对象的实例。 BookStoreList<Book> 没有实例。你必须先这样创建,

BookStore shop;
void Start()
{
    shop = new BookStore();
    shop.listofBooks = new List<Book>();
    shop.listofBooks.Add(new BookStore.Book());
    shop.AddNewPage(0, "hellothere");
}

希望有所帮助,