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 / clr / src / BCL / System / Collections / Generic / DebugView.cs / 1 / DebugView.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*==============================================================================
** 
** 
**
** Purpose: DebugView class for generic collections 
**
**
=============================================================================*/
 
namespace System.Collections.Generic {
    using System; 
    using System.Collections.ObjectModel; 
    using System.Security.Permissions;
    using System.Diagnostics; 

    //
    // VS IDE can't differentiate between types with the same name from different
    // assembly. So we need to use different names for collection debug view for 
    // collections in mscorlib.dll and system.dll.
    // 
    internal sealed class Mscorlib_CollectionDebugView { 
        private ICollection collection;
 
        public Mscorlib_CollectionDebugView(ICollection collection) {
            if (collection == null)
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.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 Mscorlib_DictionaryKeyCollectionDebugView { 
        private ICollection collection;

        public Mscorlib_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 Mscorlib_DictionaryValueCollectionDebugView {
        private ICollection collection;
 
        public Mscorlib_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;
            } 
        }
    }

    internal sealed class Mscorlib_DictionaryDebugView { 
        private IDictionary dict;
 
        public Mscorlib_DictionaryDebugView(IDictionary dictionary) { 
            if (dictionary == null)
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.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 Mscorlib_KeyedCollectionDebugView { 
        private KeyedCollection kc; 

        public Mscorlib_KeyedCollectionDebugView(KeyedCollection keyedCollection) { 
            if (keyedCollection == null) {
                throw new ArgumentNullException("keyedCollection");
            }
 
            kc = keyedCollection;
        } 
 
        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
        public T[] Items   { 
            get {
                T[] items = new T[kc.Count];
                kc.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