我正在编写一个简单的WinForms应用程序,其中我允许用户在TreeView控件中拖动TreeNodes。 我执行的规则之一是,不允许用户将TreeNode拖入其自身的子节点中。 我以递归方式编写了以下函数来检查目标节点的父级关系。 在编译时,我收到此函数的并非所有代码路径都返回值的错误。据我所知,我在这个逻辑的每个可能的分支上都有一个返回语句...但我显然是错的。请问是否有人可以指出我的错误?
private bool IsDestinationNodeAChildOfDraggingNode(TreeNode draggingNode, TreeNode destinationNode) {
if (draggingNode.Nodes.Count == 0)
return false;
else {
if (draggingNode.Nodes.Contains(destinationNode))
return true;
else {
foreach (TreeNode node in draggingNode.Nodes)
return IsDestinationNodeAChildOfDraggingNode(node, destinationNode);
}
}
}