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
- HandlerWithFactory.cs
- WebConfigurationManager.cs
- DefaultHttpHandler.cs
- ListViewItemSelectionChangedEvent.cs
- TextTreeDeleteContentUndoUnit.cs
- ConditionalAttribute.cs
- StateManager.cs
- ArraySubsetEnumerator.cs
- FamilyMapCollection.cs
- BridgeDataRecord.cs
- ScrollChangedEventArgs.cs
- DataGridRelationshipRow.cs
- MulticastDelegate.cs
- BindingCollection.cs
- MetaColumn.cs
- WebServiceTypeData.cs
- LicFileLicenseProvider.cs
- ColorContext.cs
- MethodCallTranslator.cs
- TypedElement.cs
- EntitySetDataBindingList.cs
- HttpCapabilitiesEvaluator.cs
- DocumentApplicationJournalEntry.cs
- FontUnit.cs
- ManualResetEvent.cs
- ReadOnlyDictionary.cs
- DataRelationPropertyDescriptor.cs
- SQLByte.cs
- LicenseContext.cs
- AppSettingsSection.cs
- SafePEFileHandle.cs
- PlainXmlSerializer.cs
- WebBrowserUriTypeConverter.cs
- DesignerDataTableBase.cs
- DoubleStorage.cs
- HtmlWindowCollection.cs
- SystemTcpStatistics.cs
- FormsAuthenticationConfiguration.cs
- ResourceContainerWrapper.cs
- GridItemPatternIdentifiers.cs
- TraceContextRecord.cs
- SQLByte.cs
- MailFileEditor.cs
- OutputCacheProfileCollection.cs
- BamlCollectionHolder.cs
- RunClient.cs
- CookieProtection.cs
- XmlDictionary.cs
- XPathBinder.cs
- SessionStateUtil.cs
- Resources.Designer.cs
- IdentityModelStringsVersion1.cs
- TableLayoutSettings.cs
- PropertyEntry.cs
- DictionaryKeyPropertyAttribute.cs
- WorkerRequest.cs
- _Win32.cs
- ExpanderAutomationPeer.cs
- ProxyFragment.cs
- NoneExcludedImageIndexConverter.cs
- FixedElement.cs
- Type.cs
- ScrollChangedEventArgs.cs
- OleDbSchemaGuid.cs
- OdbcHandle.cs
- DataPagerFieldCollection.cs
- ExtendedPropertyCollection.cs
- HtmlInputReset.cs
- AsyncOperation.cs
- GetPageNumberCompletedEventArgs.cs
- ArgumentValueSerializer.cs
- EncodingNLS.cs
- CodeSnippetCompileUnit.cs
- ResourcePermissionBase.cs
- BuildProviderUtils.cs
- UrlMappingsSection.cs
- HatchBrush.cs
- TemplateComponentConnector.cs
- URLString.cs
- EndpointIdentityConverter.cs
- StorageEntitySetMapping.cs
- SecurityTokenException.cs
- OdbcErrorCollection.cs
- WindowsBrush.cs
- ReadOnlyCollectionBase.cs
- ParameterBinding.cs
- RMPermissions.cs
- SingleQueryOperator.cs
- SqlColumnizer.cs
- Int64Storage.cs
- RecipientIdentity.cs
- StateItem.cs
- propertytag.cs
- WinFormsUtils.cs
- XmlSerializer.cs
- BrushMappingModeValidation.cs
- DataTableTypeConverter.cs
- ProcessHostFactoryHelper.cs
- InvalidEnumArgumentException.cs
- BufferBuilder.cs