XmlChildEnumerator.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / Dom / XmlChildEnumerator.cs / 1 / XmlChildEnumerator.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
namespace System.Xml { 
    using System.Collections;
 
    internal sealed class XmlChildEnumerator: IEnumerator {
        internal XmlNode container;
        internal XmlNode child;
        internal bool isFirst; 

        internal XmlChildEnumerator( XmlNode container ) { 
            this.container = container; 
            this.child = container.FirstChild;
            this.isFirst = true; 
        }

        bool IEnumerator.MoveNext() {
            return this.MoveNext(); 
        }
 
        internal bool MoveNext() { 
            if (isFirst) {
                child = container.FirstChild; 
                isFirst = false;
            }
            else if (child != null) {
                child = child.NextSibling; 
            }
 
            return child != null; 
        }
 
        void IEnumerator.Reset() {
            isFirst = true;
            child = container.FirstChild;
        } 

        object IEnumerator.Current { 
            get { 
                return this.Current;
            } 
        }

        internal XmlNode Current {
            get { 
                if (isFirst || child == null)
                    throw new InvalidOperationException(Res.GetString(Res.Xml_InvalidOperation)); 
 
                return child;
            } 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
namespace System.Xml { 
    using System.Collections;
 
    internal sealed class XmlChildEnumerator: IEnumerator {
        internal XmlNode container;
        internal XmlNode child;
        internal bool isFirst; 

        internal XmlChildEnumerator( XmlNode container ) { 
            this.container = container; 
            this.child = container.FirstChild;
            this.isFirst = true; 
        }

        bool IEnumerator.MoveNext() {
            return this.MoveNext(); 
        }
 
        internal bool MoveNext() { 
            if (isFirst) {
                child = container.FirstChild; 
                isFirst = false;
            }
            else if (child != null) {
                child = child.NextSibling; 
            }
 
            return child != null; 
        }
 
        void IEnumerator.Reset() {
            isFirst = true;
            child = container.FirstChild;
        } 

        object IEnumerator.Current { 
            get { 
                return this.Current;
            } 
        }

        internal XmlNode Current {
            get { 
                if (isFirst || child == null)
                    throw new InvalidOperationException(Res.GetString(Res.Xml_InvalidOperation)); 
 
                return child;
            } 
        }
    }
}

// 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