如何产生return语句返回没有元素?

Jos*_*ell 4 c# methods iterator enumerator yield-return

我正在练习在二叉搜索树上删除节点,并且我使用空模式为空链接(NullNode)创建了一个特殊类型,因此我可以为"null"类型添加一些理想的行为.两个节点类型和Nullnode类型共享相同的INODE接口,其中包括递归方法.

索引节点接口包括IEnumerable的递归方法POR预购,序和后序遍历,但是我不想NullNode返回任何元素(通过产量return语句).

我能做什么?

我知道我可以使用一个不可能的if条件,然后在方法中放一个yield return语句,但我不认为这个解决方案是好的.应该有一个更好的方法.

m0s*_*0sa 12

使用yield break语句:

private static IEnumerable<INode> YieldEmpty()
{
    yield break;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我曾经相信** yield break **语句会停止整个迭代器,但现在我对它的理解更好了。 (2认同)