Code:
/ 4.0 / 4.0 / 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. // ==++== // // 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
- AliasedSlot.cs
- IPAddress.cs
- WeakReferenceList.cs
- X509Chain.cs
- ContextMarshalException.cs
- StateBag.cs
- EmptyTextWriter.cs
- SoapCommonClasses.cs
- MouseEvent.cs
- SqlResolver.cs
- IncrementalReadDecoders.cs
- EventLevel.cs
- OdbcDataReader.cs
- SchemaLookupTable.cs
- PropertyPushdownHelper.cs
- Composition.cs
- XslAstAnalyzer.cs
- BindUriHelper.cs
- DecimalSumAggregationOperator.cs
- BitmapEffectInput.cs
- WebControl.cs
- TreeNodeBinding.cs
- SqlFacetAttribute.cs
- DynamicRendererThreadManager.cs
- TreeViewTemplateSelector.cs
- MatrixValueSerializer.cs
- PrintDialogException.cs
- EntitySqlQueryCacheEntry.cs
- ByeMessage11.cs
- KeyTimeConverter.cs
- EllipseGeometry.cs
- HttpSysSettings.cs
- SByteStorage.cs
- IERequestCache.cs
- EventLogEntryCollection.cs
- PersonalizableAttribute.cs
- Base64Decoder.cs
- AssemblySettingAttributes.cs
- GPPOINTF.cs
- InvalidPrinterException.cs
- Triplet.cs
- NetCodeGroup.cs
- BulletedListEventArgs.cs
- PasswordTextNavigator.cs
- PaintEvent.cs
- LazyTextWriterCreator.cs
- XmlBinaryReader.cs
- InputBinder.cs
- InvalidWMPVersionException.cs
- ISessionStateStore.cs
- Border.cs
- OdbcCommand.cs
- TextEditorParagraphs.cs
- StorageEndPropertyMapping.cs
- TextEditorParagraphs.cs
- SignedXml.cs
- CryptoHandle.cs
- InputProcessorProfilesLoader.cs
- PickBranch.cs
- GeneratedCodeAttribute.cs
- RectangleF.cs
- ThreadNeutralSemaphore.cs
- SelectionEditingBehavior.cs
- ButtonStandardAdapter.cs
- AspCompat.cs
- ApplicationTrust.cs
- RichTextBoxAutomationPeer.cs
- BrowserTree.cs
- Pair.cs
- QueryContinueDragEventArgs.cs
- DetailsViewCommandEventArgs.cs
- DataGridAddNewRow.cs
- control.ime.cs
- CustomAttribute.cs
- ItemDragEvent.cs
- GcSettings.cs
- ListViewItemCollectionEditor.cs
- DateTimeEditor.cs
- UmAlQuraCalendar.cs
- Guid.cs
- ToolStripItemTextRenderEventArgs.cs
- OleDbFactory.cs
- ResourceKey.cs
- UiaCoreApi.cs
- ServiceBuildProvider.cs
- CultureInfoConverter.cs
- QueryContinueDragEvent.cs
- Style.cs
- PageStatePersister.cs
- AsyncCodeActivityContext.cs
- CommandEventArgs.cs
- ConfigurationValidatorBase.cs
- XPathNodeHelper.cs
- DbModificationClause.cs
- WebScriptMetadataMessageEncoderFactory.cs
- SecurityState.cs
- InternalConfigRoot.cs
- SoapSchemaImporter.cs
- KeyValuePair.cs
- TimeEnumHelper.cs