gpt4 book ai didi

C#:并非所有代码路径都返回一个值

转载 作者:行者123 更新时间:2023-11-30 13:08:58 25 4
gpt4 key购买 nike

我正在编写一个简单的 WinForms 应用程序,我允许用户在 TreeView 控件中的 TreeNodes 周围拖动。我强制执行的规则之一是不允许用户将 TreeNode 拖到它自己的子节点中。我以递归方式编写了以下函数来检查目标节点的父级。编译后,我收到此函数的并非所有代码路径都返回值 的错误。据我所知,我确实在这个逻辑的每个可能分支上都有一个 return 语句......但我显然错了。请有人指出我的错误。

    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);
}
}
}

最佳答案

大概是指如果draggingNode.Nodes里面没有任何item,那么它就会从else中掉出来,退出这个函数,不返回任何东西。

也许这样做:

foreach (TreeNode node in draggingNode.Nodes) 
return IsDestinationNodeAChildOfDraggingNode(node, destinationNode);

return false

关于C#:并非所有代码路径都返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com