c# – 为什么在这种情况下编译器不会抱怨?
发布时间:2020-12-15 19:58:51 所属栏目:百科 来源:网络整理
导读:这是代码: private TreeNode GetTopLevelNode(TreeNode childNode) { if (childNode == null) throw new ArgumentNullException("childNode","childNode is null."); if (childNode.Parent == null) return childNode; TreeNode node = childNode; while (t
这是代码:
private TreeNode GetTopLevelNode(TreeNode childNode) { if (childNode == null) throw new ArgumentNullException("childNode","childNode is null."); if (childNode.Parent == null) return childNode; TreeNode node = childNode; while (true) { if (node.Parent == null) { return node; } node = node.Parent; } } 在while循环中,仅当node.Parent == null时,才会返回一个节点, 为什么编译器不报告“并非所有代码路径返回值”错误? 如果不能满足’node.Parent == null’,则不返回树节点. 解决方法
因为你正在使用while(true){,除了使用return之外没有其他方法可以退出循环.如果不能满足node.parent == null,那么它将是一个无限循环.因此,没有返回就无法通过循环,编译器也不会抱怨.
此外,您指定的代码几乎总是返回一个null TreeNode,这是您真正想要的吗? 编辑:我看到你解决了这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 无法指定“AnyObject”类型的值?到’String!’类型的值 –
- c# – 在SQL Server中反汇编位标志枚举
- WebGIS--ArcGIS系列开发三:Oracle 安装配置
- 深入浅析vue组件间事件传递
- P2020 ( e500核 ) 上电启动及uboot流程
- 合成/聚合复用原则(Composite/Aggregate Reuse Principle )
- Sax解析Xml遇到&
- c – 为什么sizeof引用类型给你的sizeof的类型?
- VB.NET机房收费系统个人版----知识新充实
- reactjs – React-d3 findComponentRoot(…,.0.0.1.0.0.1.0