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
- DataService.cs
- CodeTypeDelegate.cs
- SqlFunctionAttribute.cs
- HtmlInputCheckBox.cs
- DbDataRecord.cs
- MonthChangedEventArgs.cs
- HTMLTagNameToTypeMapper.cs
- ConfigurationStrings.cs
- SettingsPropertyWrongTypeException.cs
- BlurEffect.cs
- PersonalizationAdministration.cs
- EllipticalNodeOperations.cs
- ValidationErrorCollection.cs
- OdbcConnectionFactory.cs
- CaseInsensitiveComparer.cs
- RefreshPropertiesAttribute.cs
- VisualBrush.cs
- ProjectedSlot.cs
- BaseComponentEditor.cs
- ClrProviderManifest.cs
- IImplicitResourceProvider.cs
- SessionStateSection.cs
- RealProxy.cs
- ForEach.cs
- ImageButton.cs
- DesignerSerializationOptionsAttribute.cs
- WebEncodingValidator.cs
- BrowserInteropHelper.cs
- X509ChainElement.cs
- Span.cs
- ExpressionTable.cs
- JsonDataContract.cs
- RepeatBehavior.cs
- Token.cs
- HashLookup.cs
- MissingMethodException.cs
- TimeBoundedCache.cs
- ToolStripDesignerAvailabilityAttribute.cs
- Vertex.cs
- FormParameter.cs
- EntityModelSchemaGenerator.cs
- HealthMonitoringSection.cs
- RowCache.cs
- HttpModulesSection.cs
- GradientStop.cs
- CodeNamespaceCollection.cs
- StreamResourceInfo.cs
- XmlLanguageConverter.cs
- CodeTypeReferenceSerializer.cs
- MessageSecurityOverTcpElement.cs
- ClientBuildManager.cs
- ZipIOBlockManager.cs
- Rotation3DAnimation.cs
- XmlDataSourceNodeDescriptor.cs
- xamlnodes.cs
- MarginCollapsingState.cs
- ContainsRowNumberChecker.cs
- CommandValueSerializer.cs
- SendMailErrorEventArgs.cs
- Screen.cs
- CheckBoxField.cs
- CodeIdentifiers.cs
- JsonWriterDelegator.cs
- InheritablePropertyChangeInfo.cs
- ViewGenerator.cs
- typedescriptorpermission.cs
- MailMessage.cs
- WinEventHandler.cs
- DbModificationCommandTree.cs
- NotImplementedException.cs
- HttpModule.cs
- Attributes.cs
- GroupedContextMenuStrip.cs
- DockAndAnchorLayout.cs
- ProfileWorkflowElement.cs
- PersonalizationProviderCollection.cs
- SoapSchemaImporter.cs
- StructuredCompositeActivityDesigner.cs
- FastEncoderWindow.cs
- MetabaseReader.cs
- ObjectNavigationPropertyMapping.cs
- InkPresenter.cs
- WriterOutput.cs
- CodeFieldReferenceExpression.cs
- FixedPageProcessor.cs
- HtmlUtf8RawTextWriter.cs
- RoleGroup.cs
- MatrixAnimationUsingKeyFrames.cs
- LocalIdKeyIdentifierClause.cs
- ipaddressinformationcollection.cs
- DbConnectionFactory.cs
- ShapingWorkspace.cs
- ToolBarButtonClickEvent.cs
- pingexception.cs
- HtmlControlPersistable.cs
- CapabilitiesState.cs
- Mutex.cs
- MultiByteCodec.cs
- DefaultSerializationProviderAttribute.cs
- AnonymousIdentificationSection.cs