上代码:
class Program
{
static void Main(string[] args)
{
//var list = Power(2, 8).ToList();
var list = Power(2, 8);
foreach (int i in list)
{
Console.Write("{0} \r\n", i);
}
Console.ReadKey();
}
public static IEnumerable<int> Power(int number, int exponent)
{
int result = 1;
for (int i = 0; i < exponent; i++)
{
result = result * number;
yield return result;
}
//Thread.Sleep(1000);
yield return 3;
//Thread.Sleep(1000);
yield return 4;
//Thread.Sleep(1000);
yield return 5;
}
}
执行结果:
![](https://img.haomeiwen.com/i10437548/9d127bc8a6700353.png)
如图:当取消睡眠代码注释时,前面2到256瞬间输出,而输出3、4、5都等待了1秒。若同时在list后面加ToList()方法后,会立即执行所有返回值,耗时3秒多,反之瞬间执行完成。
网友评论