读书人

foreach语句的内存使用有关问题

发布时间: 2012-01-20 18:53:53 作者: rapoo

foreach语句的内存使用问题~
代码很简单
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 个实例?

[解决办法]
foreach (object obj in MyArray)
{
Console.WriteLine(obj);
}

等价于:

IEnumerater ietr = MyArray.GetEnumerater();
while(ietr.MoveNext())
{
Console.WriteLine(ietr.Current);
}


仅仅是用了一个IEnumerater 接口来帮助访问 MyArray 的内容。

读书人网 >C#

热点推荐