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
- AuthenticateEventArgs.cs
- XmlImplementation.cs
- WCFServiceClientProxyGenerator.cs
- BindingExpressionUncommonField.cs
- Paragraph.cs
- StandardBindingOptionalReliableSessionElement.cs
- DBAsyncResult.cs
- MutexSecurity.cs
- RijndaelManaged.cs
- HashCodeCombiner.cs
- CodeTypeParameter.cs
- BitmapImage.cs
- HostingEnvironmentWrapper.cs
- Overlapped.cs
- URI.cs
- InvalidOperationException.cs
- StringExpressionSet.cs
- WindowsListBox.cs
- sitestring.cs
- ClientSideProviderDescription.cs
- CheckStoreFileValidityRequest.cs
- CharConverter.cs
- SpStreamWrapper.cs
- XamlTreeBuilder.cs
- coordinatorfactory.cs
- SqlConnectionManager.cs
- NameValueConfigurationElement.cs
- PersianCalendar.cs
- TextControlDesigner.cs
- _RequestCacheProtocol.cs
- ListViewItemMouseHoverEvent.cs
- ChangeConflicts.cs
- Base64Decoder.cs
- TextEditorCopyPaste.cs
- MiniLockedBorderGlyph.cs
- OdbcReferenceCollection.cs
- X509SecurityTokenParameters.cs
- DataPager.cs
- BehaviorEditorPart.cs
- TypeTypeConverter.cs
- PtsPage.cs
- RectValueSerializer.cs
- MiniModule.cs
- ExecutionEngineException.cs
- XMLSyntaxException.cs
- Property.cs
- XmlChildNodes.cs
- EntityDataSource.cs
- RSAProtectedConfigurationProvider.cs
- DesignBindingPicker.cs
- WebPartTransformer.cs
- MultipleViewPattern.cs
- ObjectContext.cs
- WebPartConnectVerb.cs
- MenuItem.cs
- EventLogger.cs
- mediaeventargs.cs
- recordstatescratchpad.cs
- XMLDiffLoader.cs
- XmlNullResolver.cs
- RuntimeHandles.cs
- HttpCacheVaryByContentEncodings.cs
- HttpChannelHelper.cs
- HttpClientCertificate.cs
- SubstitutionList.cs
- ListView.cs
- Rule.cs
- ProgressBarAutomationPeer.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- PlatformCulture.cs
- PerfCounters.cs
- EventLogEntry.cs
- PrefixHandle.cs
- MatrixIndependentAnimationStorage.cs
- StateBag.cs
- SchemeSettingElement.cs
- CodeArrayCreateExpression.cs
- DiscreteKeyFrames.cs
- ShortcutKeysEditor.cs
- WebPartDisplayModeCancelEventArgs.cs
- WebPartsPersonalization.cs
- RichTextBoxConstants.cs
- DbgCompiler.cs
- LayoutTableCell.cs
- MediaPlayer.cs
- RoutedEventConverter.cs
- CryptoSession.cs
- StylusPointPropertyUnit.cs
- RangeContentEnumerator.cs
- ListItemCollection.cs
- WmlPhoneCallAdapter.cs
- ProxyAttribute.cs
- TitleStyle.cs
- _CookieModule.cs
- BinaryFormatterWriter.cs
- DataRecord.cs
- HttpRuntimeSection.cs
- SnapLine.cs
- LoadedOrUnloadedOperation.cs
- hresults.cs