Pro*_*oob 4 c# vb.net yield break
我正在将一个C#项目转换为VB.net,需要了解C#的Yield Break.我知道已经有关于Stack Overflow上的Yield Break的问题,但我觉得这些问题有点不同.
1.)当您使用Yield Break时,包含它的函数会向调用者返回一个值吗?如果是这样,它是Null/Nothing,函数类型的默认值,还是其他什么?
2.)当您产生Break时,迭代器重新开始.换句话说,下次调用Iterator时,它会再次返回集合中的第一个项吗?
3.)与Yield Break最接近的vb.net是什么?退出功能?什么都没回来?还有什么?
当您使用Yield Break时,包含它的函数会向调用者返回一个值吗?如果是这样,它是Null/Nothing,函数类型的默认值,还是其他什么?
不,它不会返回值.它只是结束枚举.你可以说,它设置了IEnumerator.MoveNext()返回值false,就是这样.
当您使用Yield Break时,Iterator会重新开始.换句话说,下次调用Iterator时,它会再次返回集合中的第一个项吗?
这一切都取决于你的方法是如何编写的,但是当你调用使用yield你正在创建新状态机实例的方法时,它可以再次返回相同的值.
与Yield Break相当的最接近的vb.net是什么?退出功能?什么都没回来?还有什么?
您可以使用Exit Function或Return语句结束迭代.
yield break;并没有产生一个项目的一部分IEnumerable<T>返回值。
例如,以下为您提供了一个空的枚举:
IEnumerable<int> F()
{
yield break;
}
Run Code Online (Sandbox Code Playgroud)
这意味着F().Count()为 0。