fanxing

http://www.cnblogs.com/muchunbo/archive/2008/12/04/1347245.html

foreach并没有增加资源使用,这句话听得有些难懂,由于对于继承了IEnumerable接口的类型数据,才能使用foreach语句,那么对于使用foreach会访问IEnumerable接口中GetEnumerator方法来进行枚举,那么对于如上的foreach语句,对应的语句其实如下:
        IEnumerator it = arrInt.GetEnumerator() as IEnumerator;
        using( IDisposable disp = it as IDisposable )
        {
            while( it.MoveNext() )
            {
                int elem = ( int )it.Current;
                Debug.WriteLine( elem.ToString() );
            }
        }
 
也就是说在出了foreach之后对于IEnumerator的对象也进行Dispose处理。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huang7914/archive/2008/04/16/2296176.aspx

你可能感兴趣的:(fanxing)