尝试为可以拥有父级和子级列表的目录编写类。
班级定义:
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.
答案 0 :(得分:2)
你从未实例化过这个
public List<Directory> subDirs;
将其更改为:
public List<Directory> subDirs = new List<Directory>();
既然你把它放在标题中,我想我会发表评论。你的错误与自我引用课程没有任何关系(这样做完全没问题)。如果能够执行此操作时出错,则会出现编译时错误,而不是运行时错误。