从另一个类中访问类列表-空引用异常

本文关键字:引用 异常 访问 另一个 列表 | 更新日期: 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之前,它已经创建并添加到表单。