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
- DataTableMapping.cs
- DataSourceHelper.cs
- BinHexEncoder.cs
- StructuredProperty.cs
- BaseDataBoundControl.cs
- StoreItemCollection.cs
- WindowsStreamSecurityElement.cs
- Compilation.cs
- TriggerBase.cs
- SEHException.cs
- ConsumerConnectionPointCollection.cs
- UnionExpr.cs
- ErrorReporting.cs
- DbException.cs
- ObjRef.cs
- LinqDataSourceDeleteEventArgs.cs
- DataListItemCollection.cs
- SystemIPv6InterfaceProperties.cs
- CircleEase.cs
- PublisherIdentityPermission.cs
- MemberInfoSerializationHolder.cs
- WindowsSolidBrush.cs
- PrimitiveXmlSerializers.cs
- SkewTransform.cs
- AdRotator.cs
- MouseBinding.cs
- ContractValidationHelper.cs
- FormViewInsertEventArgs.cs
- ToolZone.cs
- CommandHelpers.cs
- ResourceDescriptionAttribute.cs
- ContentFilePart.cs
- PointConverter.cs
- CheckBox.cs
- VersionedStreamOwner.cs
- WmfPlaceableFileHeader.cs
- DBParameter.cs
- SignatureDescription.cs
- PartManifestEntry.cs
- QilInvoke.cs
- ImplicitInputBrush.cs
- SQLDecimal.cs
- PeerPresenceInfo.cs
- EventLogReader.cs
- GridViewPageEventArgs.cs
- RectangleGeometry.cs
- FillRuleValidation.cs
- ComponentDispatcherThread.cs
- IISMapPath.cs
- Crypto.cs
- Ref.cs
- DataGridViewRowPrePaintEventArgs.cs
- DecoderReplacementFallback.cs
- TraceLevelHelper.cs
- StringWriter.cs
- HtmlLink.cs
- ImageListImage.cs
- RtfToken.cs
- EntityContainerRelationshipSetEnd.cs
- X509Certificate2.cs
- SmtpFailedRecipientsException.cs
- SizeLimitedCache.cs
- DrawingContextWalker.cs
- System.Data_BID.cs
- XmlSchemaSimpleContentExtension.cs
- BitmapPalette.cs
- SqlDataSourceCommandEventArgs.cs
- FocusTracker.cs
- PinnedBufferMemoryStream.cs
- HtmlMeta.cs
- OletxResourceManager.cs
- RecordManager.cs
- SafeEventLogWriteHandle.cs
- PersistenceTypeAttribute.cs
- BaseCollection.cs
- DataBinding.cs
- FontConverter.cs
- IndicShape.cs
- ErrorBehavior.cs
- RotateTransform3D.cs
- MenuItem.cs
- GridViewEditEventArgs.cs
- ObjectDataProvider.cs
- InvokeMemberBinder.cs
- RectangleGeometry.cs
- WCFModelStrings.Designer.cs
- MatrixTransform3D.cs
- Block.cs
- ProcessHostConfigUtils.cs
- HandlerFactoryCache.cs
- XmlValueConverter.cs
- PixelShader.cs
- _RequestLifetimeSetter.cs
- TriggerActionCollection.cs
- contentDescriptor.cs
- Repeater.cs
- TagPrefixCollection.cs
- ContextProperty.cs
- ResourceDescriptionAttribute.cs
- RadioButtonBaseAdapter.cs