请看下面的代码片段。我在“this.directories.Add(new directory(s));”中得到nullreferenceexception。递归似乎一直工作到“解开”为止,此时“新目录”似乎是空的。我不确定它为什么这样做,我想也许有特殊的规则,因为递归是在构造函数中。请帮忙。构造函数递归
namespace AnalyzeDir
{
class directory
{
public string[] files;
public ArrayList directories;
public string mypath;
public string myname;
public directory(string mp)
{
mypath = mp;
myname = mypath.Substring(mypath.LastIndexOf("\\"));
files = Directory.GetFiles(mypath);
fillDirectoriesRescursive();
}
public void fillDirectoriesRescursive()
{
string[] dirpaths = Directory.GetDirectories(mypath);
if (dirpaths != null && (dirpaths.Length > 0))
{
foreach(string s in dirpaths)
{
this.directories.Add(new directory(s));
}
}
}
这与问题无关,但供将来参考:通常使用大写,即'Directory'和'FillDirectoriesRecursive'开始.NET类和方法名称。 – 2011-12-20 00:15:04