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
- MailMessageEventArgs.cs
- _TimerThread.cs
- OleDbDataReader.cs
- ProcessModelInfo.cs
- Helpers.cs
- SocketElement.cs
- InkCanvas.cs
- LocalizationParserHooks.cs
- ConfigXmlElement.cs
- Substitution.cs
- NotifyInputEventArgs.cs
- MembershipValidatePasswordEventArgs.cs
- ActivityDesigner.cs
- Activator.cs
- Win32KeyboardDevice.cs
- MediaPlayer.cs
- EntityContainerEmitter.cs
- TdsParserStaticMethods.cs
- ImageConverter.cs
- Stopwatch.cs
- ParallelActivityDesigner.cs
- PermissionListSet.cs
- CngProperty.cs
- PersonalizationEntry.cs
- CollectionConverter.cs
- MenuItem.cs
- arclist.cs
- InfoCardAsymmetricCrypto.cs
- HMACSHA512.cs
- SendMailErrorEventArgs.cs
- BitmapEffectDrawingContextWalker.cs
- WhitespaceRuleLookup.cs
- BinarySerializer.cs
- HttpDictionary.cs
- UnsafeNativeMethodsTablet.cs
- FormsIdentity.cs
- CustomErrorCollection.cs
- BinaryFormatter.cs
- PrintingPermission.cs
- ImageCodecInfo.cs
- AutomationEvent.cs
- XmlStreamStore.cs
- XmlChildEnumerator.cs
- _SpnDictionary.cs
- UndoManager.cs
- SmiXetterAccessMap.cs
- InvokeMethodDesigner.xaml.cs
- CommentEmitter.cs
- MouseActionValueSerializer.cs
- DropShadowEffect.cs
- XmlSchemaAnnotated.cs
- TypeElement.cs
- SecurityResources.cs
- CrossAppDomainChannel.cs
- SafeNativeMethodsOther.cs
- ResourceReader.cs
- AnimationLayer.cs
- Vector3DAnimation.cs
- TextElementCollectionHelper.cs
- DocumentPageView.cs
- ResolveMatchesCD1.cs
- HttpCachePolicy.cs
- IndentedTextWriter.cs
- SafeHandles.cs
- ConfigurationException.cs
- Label.cs
- RuntimeIdentifierPropertyAttribute.cs
- MouseBinding.cs
- Menu.cs
- X509InitiatorCertificateServiceElement.cs
- DiscoveryClientChannelBase.cs
- SessionEndingEventArgs.cs
- NamedPipeHostedTransportConfiguration.cs
- PostBackTrigger.cs
- VerticalAlignConverter.cs
- SymDocumentType.cs
- AxWrapperGen.cs
- Frame.cs
- StorageAssociationTypeMapping.cs
- StaticTextPointer.cs
- TypeSystem.cs
- ProfileSection.cs
- CfgParser.cs
- MenuItemBinding.cs
- COAUTHIDENTITY.cs
- ScriptManagerProxy.cs
- DrawingAttributesDefaultValueFactory.cs
- ExtensionDataObject.cs
- Vector.cs
- Form.cs
- LinkArea.cs
- RemotingConfiguration.cs
- XPathNavigatorKeyComparer.cs
- CryptoHelper.cs
- FeatureManager.cs
- DirectionalAction.cs
- SHA1Managed.cs
- ImageListImage.cs
- ProcessThread.cs
- IDReferencePropertyAttribute.cs