C# foreach内部原理
2024-09-20 12:38:25
我们知道使用foreach的一个要求是对象必须继承自IEnumerable接口
这样才可以进行迭代
那内部是怎么实现的呢
这个时候会将对应的foreach语句转换为一个while循环
并且通过MoveNext方法来将索引位置向后移动一位,如果存在下一个元素则返回true,否则返回false
同时通过变量Current获取当前索引处的元素
示例转化如下
foreach(var i in per)
{
//...
} IEnumerator<Person> p=per.getEnumerator();
while(p.MoveNext())
{
Person t=p.Current;
//...
}
最新文章
- 通过SmartGit把java maven项目传到码云
- C#的回调方法
- [shell编程]一个简单的脚本
- C# winform滚动字幕
- Cocos2d-X中的坐标系
- Jquery EasyUI datagrid后台数据表格生成及分页详解
- (原创)看我用各种姿势在手机和PC查看到连接到的wifi密码
- 多线程下System.Security.Cryptography.Aes CreateDecryptor报“Safe handle has been closed”的解决方案
- 大数据平台搭建-spark集群安装
- js函数式编程术语总结 - 持续更新
- 【原创】运维基础之Docker(1)简介、安装、使用
- Java调用WebService就是这么简单
- 存储过程导入excel
- classfication中使用图像金字塔和sliding windows提高准确率
- Solr学习笔记——查询
- 05: greenlet:轻量级的并发编程
- [原创]内网渗透JSP webSehll连接工具
- CTE 递归查询全解
- shell 判断路径
- Centos7下yum安装配置nginx与php
热门文章
- LeetCode算法题-Sum of Two Integers(Java实现)
- 【2018.05.09 Python学习及实践】个人项目中使用的Python库备忘-持续更新
- 转 CSS3+js实现多彩炫酷旋转圆环时钟效果
- Spring中事务配置以及事务不起作用可能出现的问题
- 设计模式のProxyPattern(代理模式)----结构模式
- dicom学习文章
- SICP 习题 (1.43)解题总结
- 基于位置的服务——百度地图SDK练习
- docker swarm:Error response from daemon: rpc error: code = Unavailable desc = grpc: the connection is unavailable
- Difference between BeanFactory and FactoryBean in Spring Framework (Spring BeanFactory与Factory区别)