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
- Select.cs
- ColumnCollection.cs
- RegexFCD.cs
- XamlContextStack.cs
- CFGGrammar.cs
- QilCloneVisitor.cs
- SoundPlayerAction.cs
- Sequence.cs
- Dynamic.cs
- TagPrefixInfo.cs
- TableLayoutPanelCellPosition.cs
- FacetValues.cs
- AddingNewEventArgs.cs
- SQLGuid.cs
- TableRowCollection.cs
- SimpleTextLine.cs
- TextTreeInsertUndoUnit.cs
- PresentationTraceSources.cs
- ExpressionQuoter.cs
- EntryIndex.cs
- NavigatingCancelEventArgs.cs
- CodeExporter.cs
- DataTableCollection.cs
- CodeMemberEvent.cs
- SigningCredentials.cs
- PromptEventArgs.cs
- DataGridViewCellEventArgs.cs
- TabControlCancelEvent.cs
- PipelineModuleStepContainer.cs
- StandardCommandToolStripMenuItem.cs
- XmlCharacterData.cs
- BoundConstants.cs
- UnmanagedMemoryStream.cs
- AnonymousIdentificationModule.cs
- DbXmlEnabledProviderManifest.cs
- Pair.cs
- COM2Enum.cs
- WebPartConnectionCollection.cs
- PropertyHelper.cs
- ParameterBuilder.cs
- VerificationException.cs
- WebPartDisplayMode.cs
- WebServiceMethodData.cs
- GenericTypeParameterBuilder.cs
- SiteMap.cs
- SdlChannelSink.cs
- HttpDebugHandler.cs
- Lease.cs
- EncodingTable.cs
- ObjectStateEntry.cs
- ActivatableWorkflowsQueryResult.cs
- WinEventWrap.cs
- UIHelper.cs
- GridViewHeaderRowPresenter.cs
- EpmTargetTree.cs
- AuthorizationRule.cs
- AxisAngleRotation3D.cs
- PackageStore.cs
- BamlBinaryReader.cs
- PersonalizableAttribute.cs
- CodeDOMUtility.cs
- CheckBoxAutomationPeer.cs
- ScrollBar.cs
- TopClause.cs
- XmlSchemaObject.cs
- DigitShape.cs
- DeviceContexts.cs
- XmlWriter.cs
- TaskExtensions.cs
- FilterEventArgs.cs
- AudioFileOut.cs
- BrowserDefinition.cs
- HttpCachePolicyElement.cs
- CompiledQuery.cs
- BufferedWebEventProvider.cs
- MonitorWrapper.cs
- FrameworkEventSource.cs
- _BasicClient.cs
- UrlRoutingModule.cs
- DataMisalignedException.cs
- SocketException.cs
- AutomationIdentifierGuids.cs
- propertytag.cs
- LinqDataSourceDisposeEventArgs.cs
- GenericTransactionFlowAttribute.cs
- CodeLabeledStatement.cs
- ObjectDataSourceDisposingEventArgs.cs
- Helpers.cs
- BypassElementCollection.cs
- TransformedBitmap.cs
- BulletedListEventArgs.cs
- DependencyPropertyHelper.cs
- EventLevel.cs
- PerspectiveCamera.cs
- LongValidatorAttribute.cs
- TraceSection.cs
- SqlOuterApplyReducer.cs
- SqlUnionizer.cs
- FrameworkReadOnlyPropertyMetadata.cs
- ModuleConfigurationInfo.cs