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
- PackageDigitalSignatureManager.cs
- OutputCacheSection.cs
- ValueHandle.cs
- ActivityBuilderHelper.cs
- RegistrationServices.cs
- CommandBindingCollection.cs
- SatelliteContractVersionAttribute.cs
- EasingKeyFrames.cs
- ProgressBarAutomationPeer.cs
- RadioButtonStandardAdapter.cs
- ToolStripDropDownDesigner.cs
- RulePatternOps.cs
- SecurityTokenSpecification.cs
- NamespaceTable.cs
- KeyGestureValueSerializer.cs
- UdpChannelListener.cs
- RtfFormatStack.cs
- ControlCollection.cs
- CodeMethodInvokeExpression.cs
- RemoteHelper.cs
- MarkupProperty.cs
- AnnotationResourceChangedEventArgs.cs
- GrammarBuilder.cs
- RuleProcessor.cs
- GridItemPatternIdentifiers.cs
- InternalCache.cs
- SqlServer2KCompatibilityCheck.cs
- RedBlackList.cs
- InputScopeNameConverter.cs
- ParseNumbers.cs
- EntityDataSourceDesigner.cs
- SqlStream.cs
- basenumberconverter.cs
- Bitmap.cs
- log.cs
- RawStylusInputReport.cs
- __ComObject.cs
- XamlLoadErrorInfo.cs
- ChannelSinkStacks.cs
- HttpWebRequestElement.cs
- XPathNode.cs
- SafeSerializationManager.cs
- StyleSheetRefUrlEditor.cs
- DependencyPropertyAttribute.cs
- CodeCompiler.cs
- HttpClientChannel.cs
- PeerContact.cs
- DecoderNLS.cs
- QilPatternVisitor.cs
- UnsignedPublishLicense.cs
- PersonalizationProvider.cs
- ClientUrlResolverWrapper.cs
- BinaryQueryOperator.cs
- MatrixCamera.cs
- DiffuseMaterial.cs
- SystemGatewayIPAddressInformation.cs
- ProxySimple.cs
- Vector3dCollection.cs
- QuaternionAnimation.cs
- DbModificationClause.cs
- BridgeDataRecord.cs
- LinqDataSourceStatusEventArgs.cs
- ComponentChangedEvent.cs
- AttachedAnnotation.cs
- UnsafeNativeMethodsCLR.cs
- RuleCache.cs
- SecurityDocument.cs
- ISAPIWorkerRequest.cs
- GridViewRowCollection.cs
- DetailsViewPagerRow.cs
- MapPathBasedVirtualPathProvider.cs
- LayoutTable.cs
- OleDbCommand.cs
- PersistNameAttribute.cs
- XsltContext.cs
- DataKey.cs
- Guid.cs
- Context.cs
- PageRouteHandler.cs
- HtmlTableCell.cs
- ProcessStartInfo.cs
- SspiHelper.cs
- InkCanvasFeedbackAdorner.cs
- HtmlElementEventArgs.cs
- AVElementHelper.cs
- DiscoveryClientChannelFactory.cs
- LiteralControl.cs
- ParserContext.cs
- DataGridViewColumnDesigner.cs
- QuerySettings.cs
- PartialTrustVisibleAssembly.cs
- Application.cs
- ControlPropertyNameConverter.cs
- BitmapImage.cs
- DelegateHelpers.cs
- HyperLinkColumn.cs
- UIElement3D.cs
- BamlRecordReader.cs
- HttpRequestCacheValidator.cs
- PagerSettings.cs