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 的内容。