DebugView.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / CompMod / System / Collections / Generic / DebugView.cs / 1 / DebugView.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*==============================================================================
** 
** 
**
** Purpose: DebugView class for generic collections 
**
** Date: Mar 09, 2004
**
=============================================================================*/ 

namespace System.Collections.Generic { 
    using System; 
    using System.Security.Permissions;
    using System.Diagnostics; 

    internal sealed class System_CollectionDebugView {
        private ICollection collection;
 
        public System_CollectionDebugView(ICollection collection) {
            if (collection == null) { 
                throw new ArgumentNullException("collection"); 
            }
 
            this.collection = collection;
        }

        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] 
        public T[] Items   {
            get { 
                T[] items = new T[collection.Count]; 
                collection.CopyTo(items, 0);
                return items; 
            }
        }
    }
 
    internal sealed class System_QueueDebugView {
        private Queue queue; 
 
        public System_QueueDebugView(Queue queue) {
            if (queue == null) { 
                throw new ArgumentNullException("queue");
            }

            this.queue = queue; 
        }
 
        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] 
        public T[] Items   {
            get { 
                return queue.ToArray();
            }
        }
    } 

    internal sealed class System_StackDebugView { 
        private Stack stack; 

        public System_StackDebugView(Stack stack) { 
            if (stack == null) {
                throw new ArgumentNullException("stack");
            }
 
            this.stack = stack;
        } 
 
        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
        public T[] Items   { 
            get {
                return stack.ToArray();
            }
        } 
    }
 
    internal sealed class System_DictionaryDebugView { 
        private IDictionary dict;
 
        public System_DictionaryDebugView(IDictionary dictionary) {
            if (dictionary == null)
                throw new ArgumentNullException("dictionary");
 
                this.dict = dictionary;
        } 
 
        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
        public KeyValuePair[] Items   { 
            get {
                KeyValuePair[] items = new KeyValuePair[dict.Count];
                dict.CopyTo(items, 0);
                return items; 
            }
        } 
    } 
    internal sealed class System_DictionaryKeyCollectionDebugView {
        private ICollection collection; 

        public System_DictionaryKeyCollectionDebugView(ICollection collection) {
            if (collection == null)
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.collection); 

                this.collection = collection; 
        } 

        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] 
        public TKey[] Items   {
            get {
                TKey[] items = new TKey[collection.Count];
                collection.CopyTo(items, 0); 
                return items;
            } 
        } 
    }
 
    internal sealed class System_DictionaryValueCollectionDebugView {
        private ICollection collection;

        public System_DictionaryValueCollectionDebugView(ICollection collection) { 
            if (collection == null)
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.collection); 
 
                this.collection = collection;
        } 

        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
        public TValue[] Items   {
            get { 
                TValue[] items = new TValue[collection.Count];
                collection.CopyTo(items, 0); 
                return items; 
            }
        } 
    }

}
                        

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