从另一个类中访问类列表-空引用异常
本文关键字:引用 异常 访问 另一个 列表 | 更新日期: 2023-09-27 18:10:18
我有一个类,它创建另一个类的列表。它看起来像:
class SortItAll
{
Recipient rec;
public List<Recipient> listofRec = new List<Recipient>();
public void sortToClass()
{
while (isThereNextLine()) { //while there is a following line
loadNextLine(); //load it
rec = new Recipient(loadNextPiece(), //break that line to pieces and send them as arguments to create an instance of "Recipient" class
loadNextPiece(),
loadNextPiece(),
loadNextPiece());
listofRec.Add(rec); //add the created instance to my list
}
}
从我的Form1类中,我调用这个方法(sortToClass()),根据我的逻辑,它应该用特定的类填充我的列表。然后我想写list.count()到一个文本框:
public Form1()
{
SortItAll sort = new SortItAll(); //create the instance of the class
sort.sortToClass(); //within which i call the method to fill my list
txt_out.Text = sort.listofRec.Count().ToString(); //writing out its count to a textbox
InitializeComponent();
}
现在我的问题是每当我尝试调试时,它都会用
阻止我Nullreference exception pointing to -> "txt_out.Text = sort.listofRec.Count().ToString();" in Form1.
然而,在调试时,我可以检查局部变量,其中它声明:
sort -> listOfRec -> Count = 4.
可能是什么问题?
Put
txt_out.Text = sort.listofRec.Count().ToString(); //writing out its count to a textbox
在InitializeComponent()之后,因为它是在该方法中创建的。
您应该将InitializeComponent();
保留在方法的顶部,因为它创建了表单上的所有控件。您可能会得到它,因为您正在尝试访问控制txt_out
之前,它已经创建并添加到表单。