Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / Generic / IEnumerable.cs / 1305376 / IEnumerable.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Interface: IEnumerable ** **[....] ** ** ** Purpose: Interface for providing generic IEnumerators ** ** ===========================================================*/ namespace System.Collections.Generic { using System; using System.Collections; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Diagnostics.Contracts; // Implement this interface if you need to support foreach semantics. // 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 IList and ICollection . [TypeDependencyAttribute("System.SZArrayHelper")] [ContractClass(typeof(IEnumerableContract<>))] #if FEATURE_CORECLR public interface IEnumerable : IEnumerable #if false { } #endif #else public interface IEnumerable : IEnumerable #endif { // Returns an IEnumerator for this enumerable Object. The enumerator provides // a simple way to access all the contents of a collection. /// new IEnumerator GetEnumerator(); } [ContractClassFor(typeof(IEnumerable<>))] internal class IEnumerableContract : System.Collections.IEnumerableContract, IEnumerable { [Pure] 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
- PtsCache.cs
- Compiler.cs
- Converter.cs
- ToolTipService.cs
- ByeMessageCD1.cs
- DynamicRenderer.cs
- AssemblyCache.cs
- KnownBoxes.cs
- SourceCollection.cs
- LogManagementAsyncResult.cs
- Decimal.cs
- UnsafeNativeMethods.cs
- PrivilegeNotHeldException.cs
- SQLDouble.cs
- Overlapped.cs
- TableCellAutomationPeer.cs
- RefType.cs
- NullToBooleanConverter.cs
- _ConnectOverlappedAsyncResult.cs
- Attributes.cs
- IntegrationExceptionEventArgs.cs
- TrackingParticipant.cs
- XNodeValidator.cs
- StateMachineExecutionState.cs
- MetadataCache.cs
- PeerCredential.cs
- DataSourceSelectArguments.cs
- DataGridViewHeaderCell.cs
- SplitterPanel.cs
- HashHelper.cs
- SecurityState.cs
- PointValueSerializer.cs
- InArgument.cs
- ComPlusTypeLoader.cs
- TreeViewDataItemAutomationPeer.cs
- SafeCryptoHandles.cs
- CursorInteropHelper.cs
- PageVisual.cs
- PersonalizablePropertyEntry.cs
- Splitter.cs
- ForwardPositionQuery.cs
- SimpleTypeResolver.cs
- CollectionType.cs
- ComponentDispatcher.cs
- PropertyValidationContext.cs
- ProxyGenerationError.cs
- FixedSOMPage.cs
- TypeSystemProvider.cs
- DrawingAttributeSerializer.cs
- PageCodeDomTreeGenerator.cs
- CompressEmulationStream.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- IdnMapping.cs
- DataBinder.cs
- XamlWriter.cs
- ObjectPropertyMapping.cs
- FixedBufferAttribute.cs
- HttpHandlersSection.cs
- OdbcCommand.cs
- TabControlAutomationPeer.cs
- ObjectDataSourceStatusEventArgs.cs
- BypassElement.cs
- XsltInput.cs
- BuilderPropertyEntry.cs
- BitSet.cs
- ComponentRenameEvent.cs
- ConsumerConnectionPoint.cs
- ProvideValueServiceProvider.cs
- FileLogRecordEnumerator.cs
- ManagedIStream.cs
- OracleBoolean.cs
- XmlSubtreeReader.cs
- HandleRef.cs
- KnownTypes.cs
- BitmapEffectCollection.cs
- SynchronizationLockException.cs
- X509Certificate2.cs
- TableParagraph.cs
- WebPartZoneBase.cs
- AnchoredBlock.cs
- RealizationContext.cs
- HtmlUtf8RawTextWriter.cs
- OdbcConnectionFactory.cs
- HttpRuntime.cs
- PropertyDescriptorCollection.cs
- ADRoleFactory.cs
- ApplyTemplatesAction.cs
- ContentType.cs
- DataGridCommandEventArgs.cs
- ProjectedSlot.cs
- ForEachDesigner.xaml.cs
- RegexWriter.cs
- sqlinternaltransaction.cs
- FileDialogCustomPlacesCollection.cs
- MULTI_QI.cs
- String.cs
- ImageSourceValueSerializer.cs
- StylusPointPropertyId.cs
- FirewallWrapper.cs
- CatalogPart.cs