C#中的for和foreach的探究与学习
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一:语句及表示方法 for语句: for(初始表达式;条件表达式;增量表达式) foreach语句: foreach(数据类型 变量 in 数组或集合) 二.理解 1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就偏移一个单位),而for循环是通过当前索引相对零索引的偏移量(通过首地址和地址偏移量)计算实际访问地址实现的; 2.以上我们也可以看出,for更具有判断逻辑性,foreach只是循环访问。当然你可以你再循环体引入业务逻辑。 从以上总结我们看出,两者各有优点,其实我觉得各自的优点,要在不同的程序中我们去考量一些要素,同时我们具体问题具体分析。那我们具体看下一下代码:我们以100万个数据相加累和,作进一步测试: 代码如下: 三.结果: 四.从问题出发,更要从实际出发 我们对for语句和foreach语句进行统计,实际此程序问题很多: 问题0:其中变量的定义对测试影响大不大。 问题1:DateTime.Now时间的精确性影响大不大。 问题2:for语句和foreach语句的位置顺序问题会不会影响。 问题3:相加累和方法测试,对for语句和foreach语句测试是否公平。 问题4:for语句和foreach语句,装载数据方式,调用数据顺序具有很大的研究价值。 问题5:for语句和foreach语句运行机制原理,对于两者的PK是否公平。 以上几点经过长久的测试,影响比较大的。当我们试图去探究一些问题,请大家更注重他们的运行机制,当然也要更注重他们在我们实际程序中,不能一直去研究性能,而忽略他们存在机制。 该文章在 2023/10/7 10:00:00 编辑过 |
关键字查询
相关文章
正在查询... |