Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / AddIn / AddIn / System / Addin / Hosting / ContravarianceAdapter.cs / 1305376 / ContravarianceAdapter.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Value Type: ContravarianceAdapter ** ** Purpose: To convert an IEnumerableto an IEnumerable ** ===========================================================*/ using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics.Contracts; namespace System.AddIn.Hosting { internal struct ContravarianceAdapter : IEnumerable where Derived : Base { private IEnumerable _enumerable; internal ContravarianceAdapter(IEnumerable collection) { _enumerable = collection; } public IEnumerator GetEnumerator() { return new ContravariantEnumerator(_enumerable.GetEnumerator()); } IEnumerator IEnumerable.GetEnumerator() { return new ContravariantEnumerator(_enumerable.GetEnumerator()); } internal struct ContravariantEnumerator : IEnumerator { IEnumerator _enumerator; internal ContravariantEnumerator(IEnumerator enumerator) { _enumerator = enumerator; } public bool MoveNext() { return _enumerator.MoveNext(); } public Derived Current { get { return (Derived)_enumerator.Current; } } Object IEnumerator.Current { get { return ((IEnumerator)_enumerator).Current; } } public void Reset() { _enumerator.Reset(); } public void Dispose() { _enumerator.Dispose(); } } } } // 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
- SchemaElement.cs
- CaseInsensitiveOrdinalStringComparer.cs
- UserInitiatedNavigationPermission.cs
- IsolatedStoragePermission.cs
- ClockGroup.cs
- TextServicesHost.cs
- ProgressBarRenderer.cs
- Tokenizer.cs
- CodeDelegateCreateExpression.cs
- HostingEnvironmentException.cs
- DataPagerFieldItem.cs
- safex509handles.cs
- EdmValidator.cs
- LiteralSubsegment.cs
- BinaryNode.cs
- HashHelper.cs
- TreeViewDataItemAutomationPeer.cs
- AssemblyResourceLoader.cs
- TimersDescriptionAttribute.cs
- KeyInterop.cs
- EntityDataSourceChangedEventArgs.cs
- OutputBuffer.cs
- WsdlInspector.cs
- OracleCommandSet.cs
- Literal.cs
- DefaultHttpHandler.cs
- ConnectionPoint.cs
- UnsupportedPolicyOptionsException.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- BasicKeyConstraint.cs
- DataControlFieldCell.cs
- TextCharacters.cs
- SecurityUniqueId.cs
- WorkItem.cs
- SHA256Managed.cs
- XPathDocument.cs
- FlowDocument.cs
- DataGridColumn.cs
- VectorAnimationUsingKeyFrames.cs
- ContentOperations.cs
- MembershipUser.cs
- _NtlmClient.cs
- GuidTagList.cs
- SqlXml.cs
- PageBreakRecord.cs
- IssuanceLicense.cs
- DataRelationCollection.cs
- OverrideMode.cs
- _SecureChannel.cs
- NamespaceExpr.cs
- FontStretches.cs
- ServiceOperation.cs
- DynamicValidatorEventArgs.cs
- CrossAppDomainChannel.cs
- DependencyStoreSurrogate.cs
- LayoutUtils.cs
- RestHandler.cs
- UrlMappingsSection.cs
- PathFigureCollectionConverter.cs
- StringStorage.cs
- UrlPropertyAttribute.cs
- RadioButtonStandardAdapter.cs
- XamlSerializationHelper.cs
- ReadContentAsBinaryHelper.cs
- LinearGradientBrush.cs
- SoapSchemaMember.cs
- FieldMetadata.cs
- InputScopeConverter.cs
- SqlConnectionFactory.cs
- WebBrowserUriTypeConverter.cs
- EventLogEntry.cs
- _UriSyntax.cs
- Utils.cs
- SystemEvents.cs
- TraceListener.cs
- ValidatingCollection.cs
- ComponentCommands.cs
- SystemKeyConverter.cs
- ButtonBaseAutomationPeer.cs
- AuthenticationConfig.cs
- PageCodeDomTreeGenerator.cs
- assertwrapper.cs
- OdbcEnvironment.cs
- printdlgexmarshaler.cs
- MasterPageParser.cs
- PasswordRecovery.cs
- IItemProperties.cs
- StylusEventArgs.cs
- CodeTypeOfExpression.cs
- EntityClientCacheEntry.cs
- ViewSimplifier.cs
- SettingsPropertyWrongTypeException.cs
- UnmanagedMemoryStream.cs
- ProcessModelInfo.cs
- PrimitiveXmlSerializers.cs
- ToolStripContainer.cs
- WebServiceData.cs
- HttpCapabilitiesSectionHandler.cs
- AnnotationAdorner.cs
- DecoderNLS.cs