Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Windows / LocalValueEnumerator.cs / 1 / LocalValueEnumerator.cs
using System; using System.Collections; using System.Diagnostics; #pragma warning disable 1634, 1691 // suppressing PreSharp warnings namespace System.Windows { ////// Local value enumeration object /// ////// Modifying local values (via SetValue or ClearValue) during enumeration /// is unsupported /// public struct LocalValueEnumerator : IEnumerator { ////// Overrides Object.GetHashCode /// ///An integer that represents the hashcode for this object public override int GetHashCode() { return base.GetHashCode(); } ////// Determine equality /// public override bool Equals(object obj) { LocalValueEnumerator other = (LocalValueEnumerator) obj; return (_count == other._count && _index == other._index && _snapshot == other._snapshot); } ////// Determine equality /// public static bool operator ==(LocalValueEnumerator obj1, LocalValueEnumerator obj2) { return obj1.Equals(obj2); } ////// Determine inequality /// public static bool operator !=(LocalValueEnumerator obj1, LocalValueEnumerator obj2) { return !(obj1 == obj2); } ////// Get current entry /// public LocalValueEntry Current { get { if(_index == -1 ) { #pragma warning suppress 6503 // IEnumerator.Current is documented to throw this exception throw new InvalidOperationException(SR.Get(SRID.LocalValueEnumerationReset)); } if(_index >= Count ) { #pragma warning suppress 6503 // IEnumerator.Current is documented to throw this exception throw new InvalidOperationException(SR.Get(SRID.LocalValueEnumerationOutOfBounds)); } return _snapshot[_index]; } } ////// Get current entry (object reference based) /// object IEnumerator.Current { get { return Current; } } ////// Move to the next item in the enumerator /// ///Success of the method public bool MoveNext() { _index++; return _index < Count; } ////// Reset enumeration /// public void Reset() { _index = -1; } ////// Return number of items represented in the collection /// public int Count { get { return _count; } } internal LocalValueEnumerator(LocalValueEntry[] snapshot, int count) { _index = -1; _count = count; _snapshot = snapshot; } private int _index; private LocalValueEntry[] _snapshot; private int _count; } ////// Represents a Property-Value pair for local value enumeration /// public struct LocalValueEntry { ////// Overrides Object.GetHashCode /// ///An integer that represents the hashcode for this object public override int GetHashCode() { return base.GetHashCode(); } ////// Determine equality /// public override bool Equals(object obj) { LocalValueEntry other = (LocalValueEntry) obj; return (_dp == other._dp && _value == other._value); } ////// Determine equality /// public static bool operator ==(LocalValueEntry obj1, LocalValueEntry obj2) { return obj1.Equals(obj2); } ////// Determine inequality /// public static bool operator !=(LocalValueEntry obj1, LocalValueEntry obj2) { return !(obj1 == obj2); } ////// Dependency property /// public DependencyProperty Property { get { return _dp; } } ////// Value of the property /// public object Value { get { return _value; } } internal LocalValueEntry(DependencyProperty dp, object value) { _dp = dp; _value = value; } // Internal here because we need to change these around when building // the snapshot for the LocalValueEnumerator, and we can't make internal // setters when we have public getters. internal DependencyProperty _dp; internal object _value; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ILGen.cs
- PackWebRequestFactory.cs
- InputReferenceExpression.cs
- ThreadStateException.cs
- BitmapScalingModeValidation.cs
- RightsManagementPermission.cs
- TransactionManager.cs
- HtmlEmptyTagControlBuilder.cs
- NullRuntimeConfig.cs
- XmlElementList.cs
- MDIClient.cs
- X509SecurityToken.cs
- Dispatcher.cs
- AssemblyCacheEntry.cs
- KeyPullup.cs
- RijndaelManaged.cs
- RSACryptoServiceProvider.cs
- ColorAnimation.cs
- ResXBuildProvider.cs
- CollectionsUtil.cs
- RotateTransform3D.cs
- xsdvalidator.cs
- EnumerableRowCollection.cs
- PersistenceIOParticipant.cs
- HttpWriter.cs
- HelpInfo.cs
- IUnknownConstantAttribute.cs
- ViewLoader.cs
- UnsafeMethods.cs
- IndexObject.cs
- BitmapEffectState.cs
- ListDataBindEventArgs.cs
- ArgumentNullException.cs
- HMAC.cs
- Header.cs
- CmsInterop.cs
- CustomErrorsSection.cs
- Byte.cs
- CTreeGenerator.cs
- LiteralControl.cs
- ListViewItemSelectionChangedEvent.cs
- MailMessageEventArgs.cs
- ListViewUpdatedEventArgs.cs
- CriticalHandle.cs
- AnonymousIdentificationSection.cs
- SemanticTag.cs
- SimpleTableProvider.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- QilUnary.cs
- HandledEventArgs.cs
- Assert.cs
- StackSpiller.Generated.cs
- DataGridViewCellLinkedList.cs
- MediaCommands.cs
- LambdaCompiler.Expressions.cs
- AliasedExpr.cs
- ScriptingRoleServiceSection.cs
- DomainUpDown.cs
- MemoryMappedView.cs
- ObjectDataSourceDisposingEventArgs.cs
- CharConverter.cs
- ConstrainedDataObject.cs
- ListenerConnectionModeReader.cs
- ScriptingProfileServiceSection.cs
- EncryptedXml.cs
- SpecialFolderEnumConverter.cs
- RuntimeConfigLKG.cs
- RemotingServices.cs
- IpcManager.cs
- DispatcherSynchronizationContext.cs
- EntityCommandExecutionException.cs
- SchemaImporterExtensionElementCollection.cs
- FixedSOMLineCollection.cs
- Button.cs
- GetPageNumberCompletedEventArgs.cs
- KeyValuePair.cs
- Calendar.cs
- GridViewDeleteEventArgs.cs
- TextProviderWrapper.cs
- JournalNavigationScope.cs
- BuildProviderCollection.cs
- BitmapEffectDrawingContextState.cs
- FontCacheLogic.cs
- MdiWindowListStrip.cs
- Package.cs
- WmfPlaceableFileHeader.cs
- TextContainer.cs
- SettingsBindableAttribute.cs
- DockPatternIdentifiers.cs
- LookupBindingPropertiesAttribute.cs
- BuildProvider.cs
- ItemChangedEventArgs.cs
- Quaternion.cs
- BitmapFrameDecode.cs
- StatusBarDrawItemEvent.cs
- FilteredDataSetHelper.cs
- DrawListViewItemEventArgs.cs
- SizeChangedEventArgs.cs
- X509Utils.cs
- _CookieModule.cs