Fork me on GitHub

yield return的理解

一直在实际开发中都有用到yield return,但也一直只停留在“用”的层面上,可谓一知半解。今天下班回来自己查证思考了半天,本着自己的原则一切从简提炼了一下几点(正确与否有待进一步学习):

  • IEnumerable是对IEnumerator的封装,以支持foreach语法糖。
  • IEnumerable<T>和IEnumerator<T>分别继承自IEnumerable和IEnumerator以提供强类型支持(即状态机中的“现态”是强类型)。
  • yield return是编译器对IEnumerator和IEnumerable实现的语法糖。
  • yield return 表现是实现IEnumerator的MoveNext方法,本质是实现一个状态机。
  • yield return能暂时将控制权交给外部,我比作“程序上奇点”,让你实现穿越。能达到目的:延迟计算、异步流。

…… 

posted @   zhanjindong  阅读(956)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
TOP
点击右上角即可分享
微信分享提示