【发布时间】:2014-03-17 08:47:23
【问题描述】:
我试图了解 yield 在 C# 中的工作原理。为了测试,我做了一些示例代码:
using System;
using System.Text;
namespace ConsoleApplication1
{
class GameFrame
{
};
class GameState
{
public static GameFrame Begin()
{
Console.WriteLine("GameState.Begin");
return new GameFrame();
}
public static GameFrame Play()
{
Console.WriteLine("GameState.Play");
return new GameFrame();
}
public static System.Collections.Generic.IEnumerator<GameFrame> MainLoop()
{
yield return Begin();
while (true)
{
yield return Play();
}
}
};
class Program
{
static void Main()
{
while (GameState.MainLoop() != null)
{
}
}
}
}
此代码仅尝试运行一次 Begin 函数并调用无限次函数 Play。请告诉我为什么我从来没有在控制台中看到我的消息?
【问题讨论】: