系列文章目录

揭开IL代码的神秘面纱--基础篇(一)

揭开IL代码的神秘面纱--基础篇(二)

揭开IL代码的神秘面纱--进阶篇(一)

持续更新中......

工具

IL指令大全

IL指令分类

IL代码编译器 ILDasm

前言

一般我们遍历List的时候,常用的会有三种写法,这三种写法的优缺点大家应该都知道,今天我们就通过IL代码来证实下。

进入正题

第一种写法:常规写法

// 升阶测试1:for遍历List 的第1种写法
List<int> list = new List<int>(3);
for (int i = 0; i < list.Count; i++)
{Console.WriteLine(list[i]);
}

IL代码及注释如下:

第二种写法:高级写法

// 升阶测试2:for遍历List 的第2种写法
for (int i = 0, len = list.Count - 1; i < len; i++)
{Console.WriteLine(list[i]);
}

IL代码及注释如下:

第三种写法:大佬写法

// 升阶测试3:for遍历List 的第3种写法
for (int i = list.Count - 1; i >= 0; i--)
{Console.WriteLine(list[i]);
}

IL代码及注释如下:

由上可以看出

第一种写法:创建了三个变量,分别存储list本身,int索引和一个是否可循环的bool值,每次循环判定都要去call以下list.Count

第二种写法:创建了四个变量,分别存储list本身,int索引,list的长度和一个是否可循环的bool值,每次循环判定只是比较两个int的大小

第三种写法:创建了三个变量,分别存储list本身,int索引和一个是否可循环的bool值,每次循环判定只是比较两个int的大小

所以在遍历list时,遍历顺序无影响的情况下,第三种写法最合适,其次是第二种,尽量少用第一种哦。


总结

好了,以上就是全部内容了,如有理解错误,还望各位大佬指出,感谢!

推荐一个将IL指令进行分类的文章,可以更方便的记忆:轻松读懂IL

我是一个爱思考,爱分享,爱游戏的游戏程序猿,喜欢就点个关注吧。

揭开IL代码的神秘面纱--进阶篇(一)相关推荐

  1. 揭开 Growth Hacking 的神秘面纱(番外篇)+ 大结局

    揭开 Growth Hacking 的神秘面纱(番外篇)+ 大结局 覃超帝国兴亡史  12月11日 11:45 FACEBOOK  互联网  分类 :互联网 阅读:1527 抢沙发 Growth Ha ...

  2. 揭开均线系统的神秘面纱_揭开依赖注入的神秘面纱,并通过此快速介绍了解它的实际应用...

    揭开均线系统的神秘面纱 by Sankalp Bhatia 通过Sankalp Bhatia 揭开依赖注入的神秘面纱,并通过此快速介绍了解它的实际应用 (Demystify Dependency In ...

  3. 逍遥自在学C语言 | 揭开while循环的神秘面纱

    前言 循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止. 在C语言中,while和do-while是两种常用的循环结构,本文将详细介绍这两种循环的用法. 一.人物简介 第一位 ...

  4. 揭开人类语言的神秘面纱:从理解到处理自然语言

    https://www.toutiao.com/a6709740042509615619/ 随着人工智能的进步和技术变得越来越复杂,我们希望现有的概念能够接受这种变化或者改变自己.同样,在自然语言的计 ...

  5. 揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器开源项目介绍

    揭开webRTC媒体服务器的神秘面纱--WebRTC媒体服务器&开源项目介绍 WebRTC生态系统是非常庞大的.当我第一次尝试理解WebRTC时,网络资源之多让人难以置信.本文针对webRTC ...

  6. 揭开Java 泛型类型擦除神秘面纱

    转载自   揭开Java 泛型类型擦除神秘面纱 泛型,一个孤独的守门者. 大家可能会有疑问,我为什么叫做泛型是一个守门者.这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘 ...

  7. .net单点登录demo_图文并茂,为你揭开“单点登录“的神秘面纱

    本文首发于政采云前端团队博客:图文并茂,为你揭开"单点登录"的神秘面纱 https://www.zoo.team/article/sso 概念 单点登录( Single Sign ...

  8. 小编带你一起揭开DLL木马的神秘面纱(转)

    在这个万"马"奔腾的时代,网络上充斥着各种各样的木马,不过随着杀毒技术的进步和大家防毒意识的提高,传统木马已渐渐失去市场,而DLL木马则"与时俱进"以其强大的生 ...

  9. 揭开均线系统的神秘面纱_在应用程式审查API中揭开新玩法的神秘面纱

    揭开均线系统的神秘面纱 During the #11WeeksOfAndroid the new Play In-App Review API was announced. This was a lo ...

最新文章

  1. 循环斐波那契数列_剑指offer #10 斐波那契数列
  2. selenium资料
  3. 解决循环引用--弱引用weak_ptr
  4. 21 MM配置-采购-定义采购组
  5. 在Android中处理屏幕布局变化
  6. 36 岁程序员应聘被公司领导直接拒绝;字节跳动:公司暂不具备上市条件;财务软件 bug 致数百人被错误定罪|极客头条...
  7. SQL:PostgreSQL设置自增序列
  8. 线性代数辅导讲义(第六章 二次型)
  9. Cisco服务器硬盘状态jbod,2018-11-06 JBOD模式下LSI9361RAID卡操作步骤
  10. 踩坑日志:go并发读取文件
  11. 【线上讲座】如果转型为AI人工智能?
  12. 私人 — 在 Apple 商务管理或 Apple 校园教务管理上作为自定 App 提供
  13. 联邦学习隐私保护相关知识总结
  14. 用tensorflow进行数据增强
  15. 不是码农,不会敲代码的她,却最懂程序员!| 人物志
  16. cmd命令查看端口和进程信息
  17. QCC51XX---Kymera调节音量
  18. OneNote如何修改已有的笔记本为默认的快速笔记?
  19. 【演示动画制作】Focusky教程 | 怎么设置帧之间的切换效果?
  20. 通向实在之路暂记007:复代数几何

热门文章

  1. 时钟BUFFER 介绍 核芯CLB53156 替代SI53156国产替代
  2. 递归方法:斐波那契数列
  3. 伪原创-在线伪原创-免费在线伪原创
  4. 使用FTP在电脑之间传输文件
  5. 如何用SEMrush Keyword Magic工具布局网站关键词?
  6. vue vuex的state,getter,mustation,action,module
  7. VUE:制作舒尔特方格点击游戏
  8. 食物卡路里 mysql_减肥十律
  9. vscode 配置代码片段
  10. 【工作计划】6.11-6.15