如何写入另一个 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
我的代码有什么问题?
您应该首先创建对象的实例。 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");
}
希望有所帮助,
对于这个例子,我使用的是我的代码的简化版本,但它遵循相同的概念。我想要一个 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
我的代码有什么问题?
您应该首先创建对象的实例。 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");
}
希望有所帮助,