using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;namespace Wrox.ProCSharp.Arrays
{
public class GameMoves
{
private IEnumerator cross;
private IEnumerator circle; public GameMoves()
{
cross = Cross();
circle = Circle();
Console.WriteLine("Circle, move {0}",cross);
} private int move = 0; public IEnumerator Cross()
{
while (true)
{
Console.WriteLine("Cross, move {0}", move);
move++;
if (move > 8)
yield break;
yield return circle;
}
} public IEnumerator Circle()
{
while (true)
{
Console.WriteLine("Circle, move {0}", move);
move++;
if (move > 8)
yield break;
yield return cross;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;namespace Wrox.ProCSharp.Arrays
{
class Program
{
static void Main()
{
GameMoves g = new GameMoves();
IEnumerator enumerator = g.Cross();
while (enumerator.MoveNext())
{
enumerator = (IEnumerator)enumerator.Current;
}
}
}
}让我很郁闷的是cross = Cross();
circle = Circle();这两句,为什么cross、circle不是存储Cross()、Circle()的返回值而是存储方法;小弟我目前知识有限,请各位大神以比较通俗的话帮我解答一下,小弟我感激不尽啊
using System.Collections.Generic;
using System.Text;
using System.Collections;namespace Wrox.ProCSharp.Arrays
{
public class GameMoves
{
private IEnumerator cross;
private IEnumerator circle; public GameMoves()
{
cross = Cross();
circle = Circle();
Console.WriteLine("Circle, move {0}",cross);
} private int move = 0; public IEnumerator Cross()
{
while (true)
{
Console.WriteLine("Cross, move {0}", move);
move++;
if (move > 8)
yield break;
yield return circle;
}
} public IEnumerator Circle()
{
while (true)
{
Console.WriteLine("Circle, move {0}", move);
move++;
if (move > 8)
yield break;
yield return cross;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;namespace Wrox.ProCSharp.Arrays
{
class Program
{
static void Main()
{
GameMoves g = new GameMoves();
IEnumerator enumerator = g.Cross();
while (enumerator.MoveNext())
{
enumerator = (IEnumerator)enumerator.Current;
}
}
}
}让我很郁闷的是cross = Cross();
circle = Circle();这两句,为什么cross、circle不是存储Cross()、Circle()的返回值而是存储方法;小弟我目前知识有限,请各位大神以比较通俗的话帮我解答一下,小弟我感激不尽啊
下面是结果:
Cross, move 0
Circle, move 1
Cross, move 2
Circle, move 3
Cross, move 4
Circle, move 5
Cross, move 6
Circle, move 7
Cross, move 8