您的位置:程序门 -> .net技术 -> c#



foreach语句的内存使用问题~


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


foreach语句的内存使用问题~[已结贴,结贴人:danny99899]
发表于:2007-03-06 11:57:57 楼主
代码很简单
                  static   void   main()
                  {
                          arraylist   myarray   =   new   arraylist();
                          for   (int   i   =   0;   i   <   10;   i++)
                                  myarray.add(i);
                          foreach   (object   obj   in   myarray)
                          {
                                  console.writeline(obj);
                          }
                  }

myarray   里面有10   个对象~
但我执行foreach   的时候是不是额外创建10   个实例?
发表于:2007-03-06 11:59:061楼 得分:0
不是,只是引用地址而已
发表于:2007-03-06 13:27:222楼 得分:10
foreach   (object   obj   in   myarray)
{
              console.writeline(obj);
}

等价于:

ienumerater   ietr   =   myarray.getenumerater();
while(ietr.movenext())
{
            console.writeline(ietr.current);
}


仅仅是用了一个ienumerater   接口来帮助访问   myarray   的内容。
发表于:2007-03-06 13:54:393楼 得分:0
楼上的代码说到了本质
不过标识不是很对

ienumerator   ietr   =   myarray.getenumerator();
while   (ietr.movenext())
        console.writeline(ietr.current);


快速检索

最新资讯
热门点击