我是这样理解的,IEnumerable就是一个容器,每次yield return就是一个元素,这样就不难理解Current和MoveNext了
public class MyClass
{public static bool m_flag = true;
public static IEnumerable Fun()
{
yield return "1";
yield return "2";
if (m_flag )
{
yield break;
}
yield return "3";
yield return "4";
}
}
void Awake()
{
foreach (string s in MyClass.Fun())
{
Debug.Log(s);
}
}
//打印如下
//1
//2