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
- HttpVersion.cs
- ItemCheckedEvent.cs
- SqlXml.cs
- wgx_render.cs
- CodeDirectiveCollection.cs
- EdgeProfileValidation.cs
- _AutoWebProxyScriptWrapper.cs
- PermissionSet.cs
- ObjectViewEntityCollectionData.cs
- ConfigurationManagerInternalFactory.cs
- ColumnClickEvent.cs
- StringValidatorAttribute.cs
- SystemPens.cs
- Attributes.cs
- Restrictions.cs
- ReferenceAssemblyAttribute.cs
- KnownIds.cs
- MultiAsyncResult.cs
- DesignBindingEditor.cs
- StringDictionaryEditor.cs
- SchemaCollectionCompiler.cs
- WindowsListViewScroll.cs
- validation.cs
- EngineSiteSapi.cs
- SqlStream.cs
- Random.cs
- ColumnHeader.cs
- CacheVirtualItemsEvent.cs
- DeclarationUpdate.cs
- QuestionEventArgs.cs
- ValidationRule.cs
- WizardPanel.cs
- ProtocolsConfiguration.cs
- VerticalAlignConverter.cs
- TemplateManager.cs
- Scene3D.cs
- TreeView.cs
- SystemIPGlobalProperties.cs
- TransformationRules.cs
- XmlAggregates.cs
- HtmlTable.cs
- StopStoryboard.cs
- Parameter.cs
- TreeNodeStyleCollectionEditor.cs
- basecomparevalidator.cs
- OracleException.cs
- DataGridViewCellStyle.cs
- BinaryOperationBinder.cs
- recordstate.cs
- SqlLiftIndependentRowExpressions.cs
- OperationSelectorBehavior.cs
- SurrogateDataContract.cs
- CodeComment.cs
- TokenBasedSetEnumerator.cs
- DateTimeFormatInfoScanner.cs
- Int16Converter.cs
- SerTrace.cs
- CodeSnippetCompileUnit.cs
- ClockController.cs
- MsmqBindingElementBase.cs
- RefreshEventArgs.cs
- WmlLiteralTextAdapter.cs
- X509ChainPolicy.cs
- CookieProtection.cs
- ComponentChangedEvent.cs
- UnionQueryOperator.cs
- PropertyTab.cs
- FloatUtil.cs
- OdbcInfoMessageEvent.cs
- DefaultValueAttribute.cs
- CustomActivityDesigner.cs
- Boolean.cs
- LogStream.cs
- QueryOutputWriter.cs
- NativeMethodsCLR.cs
- LinkedList.cs
- SqlDeflator.cs
- DataSetMappper.cs
- ObjectTypeMapping.cs
- TaskScheduler.cs
- PeerApplication.cs
- TouchesOverProperty.cs
- TextChangedEventArgs.cs
- ReliabilityContractAttribute.cs
- DesignerDataColumn.cs
- serverconfig.cs
- UTF8Encoding.cs
- XmlAnyElementAttribute.cs
- fixedPageContentExtractor.cs
- SmiGettersStream.cs
- GeneralTransform2DTo3D.cs
- CompModSwitches.cs
- GetWorkflowTree.cs
- GridViewSelectEventArgs.cs
- CertificateManager.cs
- TraceSwitch.cs
- XmlSchemaAppInfo.cs
- WebZone.cs
- WindowsProgressbar.cs
- CollectionEditVerbManager.cs