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

4 篇文章 1 订阅

系列文章目录

        揭开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

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值