The Labs \ Source Viewer \ SSCLI \ System.Collections \ IEnumerator

  1. // ==++==
  2. //
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. //
  14. // ==--==
  15. /*============================================================
  16. **
  17. ** Interface:  IEnumerator
  18. **
  19. **
  20. ** Purpose: Base interface for all enumerators.
  21. **
  22. **
  23. ===========================================================*/
  24. namespace System.Collections
  25. {
  26.     using System;
  27.     using System.Runtime.InteropServices;
  28.    
  29.     // Base interface for all enumerators, providing a simple approach
  30.     // to iterating over a collection.
  31.     [Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")]
  32.     [System.Runtime.InteropServices.ComVisible(true)]
  33.     public interface IEnumerator
  34.     {
  35.         // Interfaces are not serializable
  36.         // Advances the enumerator to the next element of the enumeration and
  37.         // returns a boolean indicating whether an element is available. Upon
  38.         // creation, an enumerator is conceptually positioned before the first
  39.         // element of the enumeration, and the first call to MoveNext
  40.         // brings the first element of the enumeration into view.
  41.         //
  42.         bool MoveNext();
  43.        
  44.         // Returns the current element of the enumeration. The returned value is
  45.         // undefined before the first call to MoveNext and following a
  46.         // call to MoveNext that returned false. Multiple calls to
  47.         // GetCurrent with no intervening calls to MoveNext
  48.         // will return the same object.
  49.         //
  50.         object Current {
  51.             get;
  52.         }
  53.        
  54.         // Resets the enumerator to the beginning of the enumeration, starting over.
  55.         // The preferred behavior for Reset is to return the exact same enumeration.
  56.         // This means if you modify the underlying collection then call Reset, your
  57.         // IEnumerator will be invalid, just as it would have been if you had called
  58.         // MoveNext or Current.
  59.         //
  60.         void Reset();
  61.     }
  62. }

Developer Fusion