Yield

匿名 (未验证) 提交于 2019-12-03 00:41:02
Yield:是一个关键字,通过状态机实现,充分体现了延迟加载的特性。
下面是一个实例代码,运行一下,会发现Yield的神奇之处。
class Program     {         static void Main(string[] args)         {             {                 IEnumerable<int> results = CommonMethod();                 results = YieldMethod();             }             Console.WriteLine("*******************************");             {                 IEnumerable<int> results = CommonMethod();                 foreach (var item in results)                 {                     Console.WriteLine(item);                 }             }             Console.WriteLine("*******************************");             {                 IEnumerable<int> results = YieldMethod();                 foreach (var item in results)                 {                     Console.WriteLine(item);                 }             }             Console.ReadKey();         }          public static IEnumerable<int> CommonMethod()         {             List<int> results = new List<int>();             int counter = 0;             int result = 1;             while (counter++ < 10)             {                 Thread.Sleep(1000);                 Console.WriteLine($"获取{counter}次数据");                 result = 2 * result;                 results.Add(result);             }             return results;         }         public static IEnumerable<int> YieldMethod()         {             int counter = 0;             int result = 1;             while (counter++ < 10)             {                 Thread.Sleep(1000);                 Console.WriteLine($"获取{counter}次数据");                 result = 2 * result;                 yield return result;             }         }     }

Yield

原文:http://blog.51cto.com/3544640/2145539

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!