A
download debugview.cs
Language: C#
Copyright: (c) 2006 Microsoft Corporation. All rights reserved.
LOC: 87
Project Info
Shared Source Common Language Infrastructure(sscli20)
Server: Shared Source Common Language Infrastructure
Type: filesystem
...system\collections\generic\
   arraysorthelper.cs
   comparer.cs
   debugview.cs
   dictionary.cs
   equalitycomparer.cs
   functor.cs
   icollection.cs
   icomparer.cs
   idictionary.cs
   ienumerable.cs
   ienumerator.cs
   iequalitycomparer.cs
   ilist.cs
   keynotfoundexception.cs
   keyvaluepair.cs
   list.cs

// ==++==
// 
//   
//    Copyright (c) 2006 Microsoft Corporation.  All rights reserved.
//   
//    The use and distribution terms for this software are contained in the file
//    named license.txt, which can be found in the root of this distribution.
//    By using this software in any fashion, you are agreeing to be bound by the
//    terms of this license.
//   
//    You must not remove this notice, or any other, from this software.
//   
// 
// ==--==
/*=============================================================================
**
**
**
** 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<T> {
        private ICollection<T> collection; 
        
        public Mscorlib_CollectionDebugView(ICollection<T> 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<TKey, TValue> {
        private ICollection<TKey> collection; 
        
        public Mscorlib_DictionaryKeyCollectionDebugView(ICollection<TKey> 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<TKey, TValue> {
        private ICollection<TValue> collection; 
        
        public Mscorlib_DictionaryValueCollectionDebugView(ICollection<TValue> 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<K, V> {
        private IDictionary<K, V> dict; 
        
        public Mscorlib_DictionaryDebugView(IDictionary<K, V> dictionary) {
            if (dictionary == null)
                ThrowHelper.ThrowArgumentNullException(ExceptionArgument.dictionary);

                this.dict = dictionary;
        }
       
        [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
        public KeyValuePair<K, V>[] Items   { 
            get {
                KeyValuePair<K, V>[] items = new KeyValuePair<K, V>[dict.Count];
                dict.CopyTo(items, 0);
                return items;
            }
        }
    }        

    internal sealed class Mscorlib_KeyedCollectionDebugView<K, T> {
        private KeyedCollection<K, T> kc; 
        
        public Mscorlib_KeyedCollectionDebugView(KeyedCollection<K, T> 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;
            }
        }        
    }            
}

About Koders | Resources | Downloads | Support | Black Duck | Terms of Service | DMCA | Privacy Policy | Contact Us