自我引用类
本文关键字:引用 自我 | 更新日期: 2023-09-27 18:05:02
尝试为一个目录编写一个类,该目录可以有父目录和子目录列表。
类定义:
class Directory {
public string name;
public Directory parentDir;
public List<Directory> subDirs;
public Directory(string name) {
this.name = name;
}
public void addSubDir(Directory x) {
subDirs.Add(x);
}
}
尝试创建两个实例并将一个设置为另一个的子实例的示例代码:
Directory temp1 = new Directory("root");
Directory temp2 = new Directory("games");
temp1.addSubDir(temp2);
我得到的错误是:
System.NullReferenceException was unhandled
Message=Object reference not set to an instance of an object.
您从未实例化此
public List<Directory> subDirs;
改成:
public List<Directory> subDirs = new List<Directory>();
既然你把它放在你的标题中,我想我应该评论一下。您的错误与自我引用类没有任何关系(这样做完全可以)。如果能够这样做是一个错误,那么您将得到一个编译时错误,而不是运行时错误。