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

时间:2018-04-01 10:59:45

标签: c# .net nullreferenceexception

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

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

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

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

希望有所帮助,