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
- DbMetaDataCollectionNames.cs
- DBNull.cs
- ItemsControlAutomationPeer.cs
- DbTransaction.cs
- EngineSiteSapi.cs
- CodeNamespaceImportCollection.cs
- ExternalException.cs
- TablePatternIdentifiers.cs
- ParserExtension.cs
- HwndHost.cs
- SqlConnectionStringBuilder.cs
- ToolStripManager.cs
- ExpressionSelection.cs
- ImageField.cs
- AsyncPostBackTrigger.cs
- RelatedPropertyManager.cs
- ArraySortHelper.cs
- SqlDataSourceCommandParser.cs
- XmlDocument.cs
- ClientConfigPaths.cs
- RegexParser.cs
- RowToFieldTransformer.cs
- SqlTopReducer.cs
- EventListenerClientSide.cs
- IUnknownConstantAttribute.cs
- ToolStripKeyboardHandlingService.cs
- ImageSource.cs
- mactripleDES.cs
- Annotation.cs
- JsonDataContract.cs
- RowUpdatingEventArgs.cs
- DateTimeConverter.cs
- SelectionItemProviderWrapper.cs
- WebSysDisplayNameAttribute.cs
- ProfileBuildProvider.cs
- EncoderExceptionFallback.cs
- PermissionListSet.cs
- AuthenticationService.cs
- CommandEventArgs.cs
- PrintingPermissionAttribute.cs
- CacheAxisQuery.cs
- DesignerDataConnection.cs
- HwndSourceParameters.cs
- ApplyImportsAction.cs
- SoapCodeExporter.cs
- complextypematerializer.cs
- WebPartCancelEventArgs.cs
- SqlException.cs
- SerializationSectionGroup.cs
- DbCommandDefinition.cs
- DataGridViewTextBoxEditingControl.cs
- _ConnectionGroup.cs
- EnvironmentPermission.cs
- WebControl.cs
- CryptoKeySecurity.cs
- RoleGroupCollection.cs
- ParserStreamGeometryContext.cs
- SpnegoTokenAuthenticator.cs
- MenuItemStyle.cs
- ObjectDataSourceMethodEventArgs.cs
- ExpressionHelper.cs
- VisualProxy.cs
- Propagator.JoinPropagator.cs
- _HTTPDateParse.cs
- AlphabeticalEnumConverter.cs
- Literal.cs
- QueryHandler.cs
- EpmTargetTree.cs
- HostProtectionPermission.cs
- InstancePersistenceCommand.cs
- tooltip.cs
- HexParser.cs
- QueryTask.cs
- PasswordDeriveBytes.cs
- StorageMappingFragment.cs
- ClientFormsIdentity.cs
- RightsManagementEncryptedStream.cs
- ColumnMapTranslator.cs
- UInt64.cs
- BufferedGraphicsContext.cs
- FamilyCollection.cs
- DataSetMappper.cs
- SmiConnection.cs
- MenuTracker.cs
- BindingGraph.cs
- VariableQuery.cs
- CachedPathData.cs
- SqlCacheDependencySection.cs
- VariantWrapper.cs
- HtmlToClrEventProxy.cs
- ArgumentException.cs
- AttributeTable.cs
- ThreadStateException.cs
- ExtensionQuery.cs
- Coordinator.cs
- StyleModeStack.cs
- XPathCompileException.cs
- SqlMethodCallConverter.cs
- ClientUrlResolverWrapper.cs
- HtmlInputPassword.cs