通过关键字词组yield return,.Net Framework(从2.0开始)会为我们生成一个状态机.状态机实际上就是一个可枚举的类型化集合

理解yield return的工作方式

  关键字词组yield return是迭代器模式(Iterator Pattern)的一种实现,能够将本身不是可迭代集合的对象做成可迭代集合

 using System;
using System.Collections.Generic;
using System.Text; namespace SimpleYieldReturn {
class Program {
static void Main(string[] args) { foreach(int i in GetEvents()) {
Console.WriteLine(i);
}
Console.Read();
} public static IEnumerable<int> GetEvents() {
var integers = new[] { ,,,,,,, };
foreach(int i in integers) {
if(i % == ) {
yield return i;
}
}
}
} }

SimpleYieldReturn

GetEvents被当作集合来用,yield return导致编译器自动生成了可枚举类

最新文章

  1. Visro 应用的前端模板工具介绍 -JsRender
  2. Debug - 支持浏览器和 Node 平台的全端调试工具
  3. Android 弹出对话框Dialog充满屏幕宽度
  4. RCNN--对象检测的又一伟大跨越
  5. Boot loader: Grub进阶[转]
  6. js两种创建对象方式
  7. phpeclipse xdebug 配置配置 -摘自网络
  8. 【课上OJ】判断密码强度
  9. 【KMP】剪花布条
  10. 【剑指offer】面试题30:最小的 k 个数
  11. Servlet 浅谈(二)
  12. 安装cocopods 更新ruby
  13. mui开发app之webview是什么
  14. Python之路【第六篇】:Python迭代器、生成器、面向过程编程
  15. Spring MVC 使用介绍(十一)—— 跨域与静态资源访问
  16. vue实战 - 车牌号校验和银行校验
  17. 32. linux下oracle数据库定时备份
  18. 点分治 poj1741
  19. [Bayes] prod: M-H: Independence Sampler for Posterior Sampling
  20. rabbitmq学习(五) —— 路由

热门文章

  1. Centos7初始配置
  2. Oracle中从控制文件读取的视图
  3. dos命令:文件操作
  4. MySQL:数据库的基本操作
  5. python3自学第二天,模块,三元运算
  6. drf 分页
  7. FileInputStream类与FileOutputStream类
  8. jq设置控件可用不可用
  9. java.lang.OutOfMemoryError: GC overhead limit exceeded
  10. css 纸张效果 666