Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / Generic / ICollection.cs / 1305376 / ICollection.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Interface: ICollection ** **[....] ** ** ** Purpose: Base interface for all generic collections. ** ** ===========================================================*/ namespace System.Collections.Generic { using System; using System.Runtime.CompilerServices; using System.Diagnostics.Contracts; // Base interface for all collections, defining enumerators, size, and // synchronization methods. // Note that T[] : IList, and we want to ensure that if you use // IList , we ensure a YourValueType[] can be used // without jitting. Hence the TypeDependencyAttribute on SZArrayHelper. // This is a special hack internally though - see VM\compile.cpp. // The same attribute is on IEnumerable and ICollection . [ContractClass(typeof(ICollectionContract<>))] [TypeDependencyAttribute("System.SZArrayHelper")] public interface ICollection : IEnumerable { // Number of items in the collections. int Count { get; } bool IsReadOnly { get; } void Add(T item); void Clear(); bool Contains(T item); // CopyTo copies a collection into an Array, starting at a particular // index into the array. // void CopyTo(T[] array, int arrayIndex); //void CopyTo(int sourceIndex, T[] destinationArray, int destinationIndex, int count); bool Remove(T item); } [ContractClassFor(typeof(ICollection<>))] internal class ICollectionContract : ICollection { int ICollection .Count { get { Contract.Ensures(Contract.Result () >= 0); return default(int); } } bool ICollection .IsReadOnly { get { return default(bool); } } void ICollection .Add(T item) { //Contract.Ensures(((ICollection )this).Count == Contract.OldValue(((ICollection )this).Count) + 1); // not threadsafe } void ICollection .Clear() { } bool ICollection .Contains(T item) { return default(bool); } void ICollection .CopyTo(T[] array, int arrayIndex) { } bool ICollection .Remove(T item) { return default(bool); } IEnumerator IEnumerable .GetEnumerator() { Contract.Ensures(Contract.Result >() != null); return default(IEnumerator ); } IEnumerator IEnumerable.GetEnumerator() { Contract.Ensures(Contract.Result () != null); return default(IEnumerator); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HiddenFieldPageStatePersister.cs
- ColumnMap.cs
- CodeMemberProperty.cs
- GridItemPatternIdentifiers.cs
- ImageAutomationPeer.cs
- InsufficientMemoryException.cs
- GestureRecognizer.cs
- AspNetSynchronizationContext.cs
- _SSPIWrapper.cs
- CompositionAdorner.cs
- AvtEvent.cs
- SqlTypeConverter.cs
- QueryExpression.cs
- SharedPersonalizationStateInfo.cs
- TransformedBitmap.cs
- CommonDialog.cs
- StylusCaptureWithinProperty.cs
- XPathScanner.cs
- AspNetSynchronizationContext.cs
- SafeHandle.cs
- WebPartConnectionsCloseVerb.cs
- NamespaceCollection.cs
- StyleBamlRecordReader.cs
- UniqueEventHelper.cs
- OdbcConnectionOpen.cs
- MembershipPasswordException.cs
- WebPartEventArgs.cs
- CatalogPart.cs
- GridViewCellAutomationPeer.cs
- HttpStreamMessage.cs
- ObjectDataSourceDisposingEventArgs.cs
- DataControlLinkButton.cs
- StyleXamlTreeBuilder.cs
- ExpressionDumper.cs
- FormViewCommandEventArgs.cs
- LookupBindingPropertiesAttribute.cs
- DrawingState.cs
- CollectionBase.cs
- AppDomain.cs
- TranslateTransform3D.cs
- MessageUtil.cs
- ViewManager.cs
- SByteStorage.cs
- ConfigUtil.cs
- ExpandCollapseProviderWrapper.cs
- HitTestDrawingContextWalker.cs
- RepeaterItem.cs
- ScrollPatternIdentifiers.cs
- MSAAWinEventWrap.cs
- ProgressChangedEventArgs.cs
- TreeViewHitTestInfo.cs
- ContextTokenTypeConverter.cs
- DataGridViewTopRowAccessibleObject.cs
- BamlResourceDeserializer.cs
- CodeGen.cs
- StreamResourceInfo.cs
- Splitter.cs
- BaseHashHelper.cs
- ListBindingHelper.cs
- AppDomainShutdownMonitor.cs
- TreeNodeMouseHoverEvent.cs
- PackageRelationshipSelector.cs
- SQLCharsStorage.cs
- Funcletizer.cs
- TemplateKeyConverter.cs
- UrlMapping.cs
- SourceFileBuildProvider.cs
- SerializableAttribute.cs
- WmpBitmapEncoder.cs
- sqlnorm.cs
- PeerResolverBindingElement.cs
- PreviewPageInfo.cs
- XmlSchemaSimpleContent.cs
- XsdBuildProvider.cs
- ExportOptions.cs
- DateTimeConstantAttribute.cs
- InputLanguageManager.cs
- Evidence.cs
- Freezable.cs
- MulticastOption.cs
- Span.cs
- SHA384Managed.cs
- ParenthesizePropertyNameAttribute.cs
- TableFieldsEditor.cs
- _LocalDataStoreMgr.cs
- IPEndPoint.cs
- ModuleBuilderData.cs
- ListenerConstants.cs
- SimplePropertyEntry.cs
- CacheMemory.cs
- InputProcessorProfilesLoader.cs
- WithStatement.cs
- UpdateException.cs
- ResourceProviderFactory.cs
- HyperLinkColumn.cs
- COM2IPerPropertyBrowsingHandler.cs
- TimeSpanConverter.cs
- PolicyStatement.cs
- TemplateInstanceAttribute.cs
- TableRow.cs