本文主要是介绍揭开IL代码的神秘面纱--进阶篇(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
系列文章目录
揭开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代码的神秘面纱--进阶篇(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!