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
- SslStream.cs
- nulltextnavigator.cs
- TextTrailingWordEllipsis.cs
- OleDbInfoMessageEvent.cs
- SQLString.cs
- CompoundFileDeflateTransform.cs
- AnnotationResourceCollection.cs
- ResXResourceReader.cs
- DictionaryChange.cs
- OleDbDataAdapter.cs
- XmlEntity.cs
- IfJoinedCondition.cs
- NamedObject.cs
- SqlReferenceCollection.cs
- TextEmbeddedObject.cs
- FontDifferentiator.cs
- Currency.cs
- UserNamePasswordClientCredential.cs
- SmiEventSink_Default.cs
- ParamArrayAttribute.cs
- CheckBoxPopupAdapter.cs
- PropertyGroupDescription.cs
- OptimizerPatterns.cs
- NetworkCredential.cs
- QilNode.cs
- FontDifferentiator.cs
- PropertyChangedEventManager.cs
- EffectiveValueEntry.cs
- HeaderCollection.cs
- LineServices.cs
- StagingAreaInputItem.cs
- WebPartConnectionsConfigureVerb.cs
- codemethodreferenceexpression.cs
- ComponentDispatcherThread.cs
- DeploymentSectionCache.cs
- ComplexBindingPropertiesAttribute.cs
- DataColumnCollection.cs
- MultipleViewProviderWrapper.cs
- QueuePathDialog.cs
- SymDocumentType.cs
- DetailsViewPagerRow.cs
- BitStream.cs
- HtmlInputRadioButton.cs
- FeatureSupport.cs
- CollectionViewProxy.cs
- ApplicationInterop.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- UriWriter.cs
- __Filters.cs
- ExpandableObjectConverter.cs
- XmlSerializerSection.cs
- GeneralTransformCollection.cs
- TextBox.cs
- RemoteWebConfigurationHostServer.cs
- HtmlButton.cs
- InternalBufferOverflowException.cs
- DesignTimeDataBinding.cs
- PeerApplicationLaunchInfo.cs
- WebBrowserHelper.cs
- MethodBody.cs
- WebPartDescription.cs
- StandardToolWindows.cs
- StateItem.cs
- CompareInfo.cs
- EastAsianLunisolarCalendar.cs
- HandleRef.cs
- CompareInfo.cs
- MultipleCopiesCollection.cs
- SqlServer2KCompatibilityCheck.cs
- FtpCachePolicyElement.cs
- XmlElementAttributes.cs
- SourceElementsCollection.cs
- ConnectionPointCookie.cs
- PseudoWebRequest.cs
- BufferedConnection.cs
- ZoneLinkButton.cs
- CompilerError.cs
- MultipleViewProviderWrapper.cs
- glyphs.cs
- MulticastDelegate.cs
- SqlConnectionPoolGroupProviderInfo.cs
- SHA384.cs
- RefExpr.cs
- CornerRadius.cs
- DataBoundLiteralControl.cs
- GridViewRowEventArgs.cs
- EventBuilder.cs
- TextElement.cs
- BitmapEffectOutputConnector.cs
- ObjectItemCachedAssemblyLoader.cs
- RadialGradientBrush.cs
- TemplateKeyConverter.cs
- CompositeCollection.cs
- NegationPusher.cs
- LongPath.cs
- TrustManagerMoreInformation.cs
- ToolTipAutomationPeer.cs
- FileClassifier.cs
- contentDescriptor.cs
- EventHandlersStore.cs