DebugView.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / Generic / DebugView.cs / 1305376 / 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;
    using System.Diagnostics.Contracts;
 
    //
    // 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");
            } 
            Contract.EndContractBlock(); 

            kc = keyedCollection; 
        }

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

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