关于迭代的问题? public GameMoves() { cross = Cross();为什么这里没执行输出TEST这行呢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是编译器为我们生成的代码var 变量 = 获取迭代器() 的时候并不会调用到图里这个方法之后用foreach使用迭代器时,才会输出“Test” 你没有办法在C#语法的层面模拟yield。4L的代码也是不可能编译的。因为C#不允许你从循环外面向循环里面跳转。 又看了李董的文章我更明白了,以下是他总结内容图中只出现了两个Test,那是因为第一次 IEnumerator enumerator = game.Cross();创建的时候,调用MoveNext运行一次,接着当运行到第二次的Cross的时候运行一次,是因为IEnumerator enumerator = game.Cross();和yield return cross两个对象不是同一个,而之后的cross是一样的所以接着前面的cross继续循环下去(在while里面执行),不会从Cross函数开始处执行,导致接下去的输出不会有Test 模拟登入的时候post信息怎么拼接? 想开发个可编程的程序,如何弄呢? SQL插入语句 DataView 从Listbox中取值的问题 如何让marquee逐条显示滚动字幕啊 求一正则表达式,在线等。答对马上结。。 DataGrid的行高如何设置 oledbconnection问题! c# listbox Application.Run到底做了些什么工作啊 C# 通过SendMessage实现对一个窗体进行键盘和鼠标操作
var 变量 = 获取迭代器() 的时候并不会调用到图里这个方法
之后用foreach使用迭代器时,才会输出“Test”
4L的代码也是不可能编译的。因为C#不允许你从循环外面向循环里面跳转。
图中只出现了两个Test,那是因为第一次 IEnumerator enumerator = game.Cross();创建的时候,调用MoveNext运行一次,接着当运行到第二次的Cross的时候运行一次,是因为IEnumerator enumerator = game.Cross();和yield return cross两个对象不是同一个,而之后的cross是一样的所以接着前面的cross继续循环下去(在while里面执行),不会从Cross函数开始处执行,导致接下去的输出不会有Test