0

我正在研究一种递归方法,该方法显示我有权查看的所有文档。第一遍效果很好,但是当它以递归方式调用自身并传递当前文档的子文档数组时,会引发错误:

你调用的对象是空的。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

这是代码:

protected void Page_Load(object sender, EventArgs e)
{
    lblTest.Text = "Data<br /><br />";
    Document[] releaseDocs = Document.GetRootDocuments();
    displayDocs(releaseDocs);
}
public void displayDocs(Document[] releaseDocs)
{
    string docPermissions = null;
    User currentUser = User.GetCurrent();
    foreach (var doc in releaseDocs)
    {
        docPermissions = currentUser.GetPermissions(doc.Path);
        if ((docPermissions.Contains("F")) && (docPermissions.Contains("U")))
        {
            lblTest.Text += "D/T: " + doc.CreateDateTime + "<br />\r\n";
            lblTest.Text += "Level: " + doc.Level + "<br />\r\n";
            lblTest.Text += "Text: " + doc.Text + "<br />\r\n";
            lblTest.Text += "<hr />\r\n";
            if (doc.HasChildren)
            {
                 Document[] childDocs = Document.GetChildrenForTree(doc.Id);
                 displayDocs(childDocs); //error occurs here
            }
        }
    }
}
4

1 回答 1

1

Document.GetChildrenForTree(doc.Id) 方法是否有可能返回 null?

于 2011-05-05T17:03:52.567 回答