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
- NavigatingCancelEventArgs.cs
- ClearTypeHintValidation.cs
- DebugView.cs
- UpdatePanelTrigger.cs
- PenContext.cs
- ComplexPropertyEntry.cs
- ScaleTransform.cs
- CultureInfoConverter.cs
- HTMLTagNameToTypeMapper.cs
- TraceSwitch.cs
- VirtualPathProvider.cs
- XamlSerializationHelper.cs
- BitmapEffectDrawing.cs
- KeyMatchBuilder.cs
- PointCollectionValueSerializer.cs
- objectquery_tresulttype.cs
- ActivityCodeDomReferenceService.cs
- HttpCachePolicyElement.cs
- ErrorInfoXmlDocument.cs
- SerializationEventsCache.cs
- DataGridViewCellStateChangedEventArgs.cs
- TemplateFactory.cs
- Dictionary.cs
- SqlMethodTransformer.cs
- AliasedExpr.cs
- BindingValueChangedEventArgs.cs
- DataIdProcessor.cs
- KeyValuePairs.cs
- WizardForm.cs
- XmlAnyElementAttribute.cs
- ProtectedProviderSettings.cs
- validationstate.cs
- AnimatedTypeHelpers.cs
- JournalEntryStack.cs
- ObjectConverter.cs
- ApplicationException.cs
- Vector3DValueSerializer.cs
- RegionIterator.cs
- DesignerCategoryAttribute.cs
- Inflater.cs
- SecurityDescriptor.cs
- ControlAdapter.cs
- ExceptionUtil.cs
- _TransmitFileOverlappedAsyncResult.cs
- PassportAuthenticationEventArgs.cs
- TemplateBaseAction.cs
- TableItemStyle.cs
- ListViewGroupItemCollection.cs
- Menu.cs
- XmlElementList.cs
- XMLUtil.cs
- TreeViewItem.cs
- WebPartConnectionsCancelVerb.cs
- XmlWriterSettings.cs
- DeferredTextReference.cs
- OperatingSystem.cs
- SafeCryptoHandles.cs
- DataGridViewAutoSizeModeEventArgs.cs
- COM2ExtendedUITypeEditor.cs
- FontDifferentiator.cs
- SettingsBindableAttribute.cs
- _DomainName.cs
- EmptyEnumerable.cs
- XmlElement.cs
- DynamicEntity.cs
- SuppressMessageAttribute.cs
- LineUtil.cs
- HtmlInputPassword.cs
- InkCollectionBehavior.cs
- NgenServicingAttributes.cs
- DesignerCategoryAttribute.cs
- AliasGenerator.cs
- Vector3DAnimationBase.cs
- TypeSemantics.cs
- ProjectionPath.cs
- CriticalFinalizerObject.cs
- ToolTipAutomationPeer.cs
- KnownAssembliesSet.cs
- NetTcpSecurity.cs
- Int16AnimationUsingKeyFrames.cs
- IndexerHelper.cs
- RoutedEventArgs.cs
- BoundColumn.cs
- TTSVoice.cs
- TdsEnums.cs
- PlainXmlSerializer.cs
- ManipulationStartedEventArgs.cs
- HtmlEmptyTagControlBuilder.cs
- TableRowCollection.cs
- Window.cs
- SymbolType.cs
- CompensationDesigner.cs
- GestureRecognitionResult.cs
- HiddenFieldDesigner.cs
- RealizationContext.cs
- WCFModelStrings.Designer.cs
- FloatUtil.cs
- JoinSymbol.cs
- EdmFunctions.cs
- Maps.cs