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
- ArgumentReference.cs
- SessionParameter.cs
- RequestCachePolicy.cs
- CheckBoxList.cs
- Directory.cs
- RowUpdatingEventArgs.cs
- ExcCanonicalXml.cs
- EpmSyndicationContentDeSerializer.cs
- Resources.Designer.cs
- ButtonChrome.cs
- ListItemCollection.cs
- ApplyImportsAction.cs
- DataContractSerializerOperationFormatter.cs
- TrackingQueryElement.cs
- DataRecord.cs
- KeyFrames.cs
- FrameDimension.cs
- ContextQuery.cs
- TileBrush.cs
- DesignerTransactionCloseEvent.cs
- TdsValueSetter.cs
- Deserializer.cs
- DataServiceResponse.cs
- StateRuntime.cs
- ADRoleFactoryConfiguration.cs
- DataGridParentRows.cs
- EtwTrace.cs
- TimeoutException.cs
- WebPartUtil.cs
- UriScheme.cs
- TransformProviderWrapper.cs
- TraceContextEventArgs.cs
- DescendentsWalker.cs
- FormCollection.cs
- ComContractElement.cs
- listitem.cs
- FormattedText.cs
- AuthenticatingEventArgs.cs
- DatatypeImplementation.cs
- Material.cs
- DrawToolTipEventArgs.cs
- FaultDescriptionCollection.cs
- ObjectDataSourceSelectingEventArgs.cs
- EditorPartCollection.cs
- RMEnrollmentPage3.cs
- SpecialTypeDataContract.cs
- DataColumn.cs
- FusionWrap.cs
- ConvertTextFrag.cs
- DoubleAnimationUsingKeyFrames.cs
- MouseOverProperty.cs
- ErrorHandler.cs
- Canvas.cs
- IHttpResponseInternal.cs
- IIS7UserPrincipal.cs
- WizardForm.cs
- AnonymousIdentificationModule.cs
- DrawItemEvent.cs
- TypeDescriptionProviderAttribute.cs
- WebPartDisplayModeCancelEventArgs.cs
- SafeFileMappingHandle.cs
- AdjustableArrowCap.cs
- StringComparer.cs
- CodeDirectionExpression.cs
- ContainerParagraph.cs
- SystemDropShadowChrome.cs
- categoryentry.cs
- DynamicDiscoveryDocument.cs
- TextTreeInsertUndoUnit.cs
- KnownBoxes.cs
- RegionInfo.cs
- RegionInfo.cs
- SecurityUniqueId.cs
- ChangeNode.cs
- EntityProxyFactory.cs
- Directory.cs
- SafeNativeMethods.cs
- Axis.cs
- Menu.cs
- RepeaterItemEventArgs.cs
- XmlArrayItemAttributes.cs
- PrimitiveType.cs
- DataControlFieldCollection.cs
- SwitchElementsCollection.cs
- FacetValues.cs
- NativeMethods.cs
- MultilineStringConverter.cs
- objectresult_tresulttype.cs
- EntityReference.cs
- ValidationRuleCollection.cs
- ModuleElement.cs
- GenerateHelper.cs
- TextParagraph.cs
- Utils.cs
- MessageDecoder.cs
- PerformanceCounterPermissionAttribute.cs
- Closure.cs
- Hashtable.cs
- TimeSpanStorage.cs
- ResXResourceWriter.cs