111,093
社区成员




public test()
{
//这里只是告诉了 enumeratorTest 如何执行,但并没有实际执行
enumeratorTest = EnumeratorTest();
stringTest = StringTest();
}
修改一下,从 enumeratorTest 中取出其中的元素
public test()
{
enumeratorTest = EnumeratorTest();
//这里会导致 EnumeratorTest 执行到 yield return "1" 被执行,并停在 yield return "1"
enumeratorTest.MoveNext();
var x = enumeratorTest.Current;
Console.WriteLine($"enumeratorTest 的返回结果是:{x}");
//这里会导致EnumeratorTest 接着 yield return "1" 后面执行到 yield return "2" 并停在 yield return "2"
x = enumeratorTest.Current;
Console.WriteLine($"enumeratorTest 的返回结果是:{x}");
//不继续调用 enumeratorTest.MoveNext() 了
//下面的 yield return "2" 后面的代码不会被执行
stringTest = StringTest();
}
private IEnumerator EnumeratorTest()
{
Console.WriteLine("enumeratorTest 第一次运行");
yield return "1";
Console.WriteLine("enumeratorTest 第二次运行");
yield return "2";
Console.WriteLine("enumeratorTest 第三次运行");
yield return "3";
}
就像个牙膏,挤它才会有. 如果只是放在那里,它是不会主动出来的