IEnumerable.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / IEnumerable.cs / 1305376 / IEnumerable.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*============================================================
** 
** Interface:  IEnumerable 
**
** [....] 
**
**
** Purpose: Interface for classes providing IEnumerators
** 
**
===========================================================*/ 
namespace System.Collections { 
    using System;
    using System.Diagnostics.Contracts; 
    using System.Runtime.InteropServices;

    // Implement this interface if you need to support VB's foreach semantics.
    // Also, COM classes that support an enumerator will also implement this interface. 
    [ContractClass(typeof(IEnumerableContract))]
    [Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")] 
    [System.Runtime.InteropServices.ComVisible(true)] 
    public interface IEnumerable
    { 
        // Interfaces are not serializable
        // Returns an IEnumerator for this enumerable Object.  The enumerator provides
        // a simple way to access all the contents of a collection.
        [Pure] 
        [DispId(-4)]
        IEnumerator GetEnumerator(); 
    } 

    [ContractClassFor(typeof(IEnumerable))] 
    internal class IEnumerableContract : IEnumerable
    {
        [Pure]
        IEnumerator IEnumerable.GetEnumerator() 
        {
            Contract.Ensures(Contract.Result() != null); 
            return default(IEnumerator); 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*============================================================
** 
** Interface:  IEnumerable 
**
** [....] 
**
**
** Purpose: Interface for classes providing IEnumerators
** 
**
===========================================================*/ 
namespace System.Collections { 
    using System;
    using System.Diagnostics.Contracts; 
    using System.Runtime.InteropServices;

    // Implement this interface if you need to support VB's foreach semantics.
    // Also, COM classes that support an enumerator will also implement this interface. 
    [ContractClass(typeof(IEnumerableContract))]
    [Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")] 
    [System.Runtime.InteropServices.ComVisible(true)] 
    public interface IEnumerable
    { 
        // Interfaces are not serializable
        // Returns an IEnumerator for this enumerable Object.  The enumerator provides
        // a simple way to access all the contents of a collection.
        [Pure] 
        [DispId(-4)]
        IEnumerator GetEnumerator(); 
    } 

    [ContractClassFor(typeof(IEnumerable))] 
    internal class IEnumerableContract : IEnumerable
    {
        [Pure]
        IEnumerator IEnumerable.GetEnumerator() 
        {
            Contract.Ensures(Contract.Result() != null); 
            return default(IEnumerator); 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK