Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / ObjectModel / ReadOnlyCollection.cs / 1305376 / ReadOnlyCollection.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // namespace System.Collections.ObjectModel { using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Runtime; [Serializable] [System.Runtime.InteropServices.ComVisible(false)] [DebuggerTypeProxy(typeof(Mscorlib_CollectionDebugView<>))] [DebuggerDisplay("Count = {Count}")] public class ReadOnlyCollection: IList , IList { IList list; [NonSerialized] private Object _syncRoot; public ReadOnlyCollection(IList list) { if (list == null) { ThrowHelper.ThrowArgumentNullException(ExceptionArgument.list); } this.list = list; } public int Count { #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif get { return list.Count; } } public T this[int index] { #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif get { return list[index]; } } #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public bool Contains(T value) { return list.Contains(value); } public void CopyTo(T[] array, int index) { list.CopyTo(array, index); } #if !FEATURE_CORECLR [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] #endif public IEnumerator GetEnumerator() { return list.GetEnumerator(); } public int IndexOf(T value) { return list.IndexOf(value); } protected IList Items { get { return list; } } bool ICollection .IsReadOnly { get { return true; } } T IList .this[int index] { get { return list[index]; } set { ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection); } } void ICollection .Add(T value) { ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection); } void ICollection .Clear() { ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection); } void IList .Insert(int index, T value) { ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection); } bool ICollection .Remove(T value) { ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection); return false; } void IList .RemoveAt(int index) { ThrowHelper.ThrowNotSupportedException(ExceptionResource.NotSupported_ReadOnlyCollection); } IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)list).GetEnumerator(); } bool ICollection.IsSynchronized { get { return false; } } object ICollection.SyncRoot { get { if( _syncRoot == null) { ICollection c = list as ICollection; if( c != null) { _syncRoot = c.SyncRoot; } else { System.Threading.Interlocked.CompareExchange
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TokenBasedSet.cs
- FontSourceCollection.cs
- MessageSecurityProtocol.cs
- TextEditorLists.cs
- ProtocolsConfigurationHandler.cs
- CommonDialog.cs
- CatalogZone.cs
- WebPart.cs
- DynamicDataRouteHandler.cs
- TTSEngineTypes.cs
- TableRowGroup.cs
- RelatedImageListAttribute.cs
- LicenseManager.cs
- path.cs
- SignedInfo.cs
- HyperlinkAutomationPeer.cs
- EndOfStreamException.cs
- Table.cs
- ColorBlend.cs
- ConstraintManager.cs
- DateTimeFormatInfoScanner.cs
- EventProperty.cs
- nulltextnavigator.cs
- StatusBarItem.cs
- WsdlImporter.cs
- TextTreePropertyUndoUnit.cs
- SplitContainer.cs
- ApplicationId.cs
- UITypeEditors.cs
- System.Data_BID.cs
- ToolZone.cs
- PngBitmapDecoder.cs
- OutputCache.cs
- WebConvert.cs
- VectorValueSerializer.cs
- DataGridLinkButton.cs
- View.cs
- CopyOfAction.cs
- HttpGetClientProtocol.cs
- datacache.cs
- EncoderParameters.cs
- NamespaceInfo.cs
- SafeBuffer.cs
- EmbeddedMailObjectsCollection.cs
- PlatformCulture.cs
- FactoryMaker.cs
- Material.cs
- HttpHandlersSection.cs
- RegisteredArrayDeclaration.cs
- OdbcCommand.cs
- XsltOutput.cs
- DrawingBrush.cs
- Helpers.cs
- CodeIterationStatement.cs
- XMLSyntaxException.cs
- CompositeFontParser.cs
- ToolStripGripRenderEventArgs.cs
- Size3DConverter.cs
- EasingKeyFrames.cs
- XmlLinkedNode.cs
- DataListItem.cs
- OleDbException.cs
- CodeTypeReference.cs
- Convert.cs
- ToolStripOverflowButton.cs
- Stack.cs
- CopyAttributesAction.cs
- ScriptingJsonSerializationSection.cs
- UInt32.cs
- PackageController.cs
- XmlArrayAttribute.cs
- ServiceEndpointCollection.cs
- GridViewCommandEventArgs.cs
- HttpSysSettings.cs
- ObjectNavigationPropertyMapping.cs
- OdbcConnectionHandle.cs
- WSDualHttpBindingElement.cs
- TabRenderer.cs
- KeyBinding.cs
- MessagingDescriptionAttribute.cs
- RequestContext.cs
- SessionSwitchEventArgs.cs
- MembershipUser.cs
- HttpEncoder.cs
- DataServiceSaveChangesEventArgs.cs
- MouseActionValueSerializer.cs
- NCryptNative.cs
- ThicknessAnimationBase.cs
- SqlUserDefinedAggregateAttribute.cs
- Matrix3DValueSerializer.cs
- InvalidAsynchronousStateException.cs
- CurrencyWrapper.cs
- WindowsListViewItemStartMenu.cs
- ellipse.cs
- BitmapEffectOutputConnector.cs
- RoutedEventArgs.cs
- ModelVisual3D.cs
- EditorPart.cs
- ISCIIEncoding.cs
- ElementInit.cs