Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / 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. 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
- PopupRoot.cs
- XmlBinaryReaderSession.cs
- NativeMethodsCLR.cs
- WindowShowOrOpenTracker.cs
- EntityException.cs
- ImpersonationContext.cs
- PathFigure.cs
- ModulesEntry.cs
- ClaimTypeElementCollection.cs
- RoutedEventConverter.cs
- JoinTreeSlot.cs
- TextBox.cs
- WebPartConnectionsDisconnectVerb.cs
- Pair.cs
- RegexWorker.cs
- cookiecontainer.cs
- Storyboard.cs
- PreviewKeyDownEventArgs.cs
- KnownTypesHelper.cs
- AttributeProviderAttribute.cs
- ProfileInfo.cs
- UnsafeNativeMethods.cs
- Expander.cs
- CompositeKey.cs
- MulticastNotSupportedException.cs
- DragEvent.cs
- ConnectionStringSettings.cs
- LOSFormatter.cs
- ParentQuery.cs
- TextEditorMouse.cs
- RuntimeCompatibilityAttribute.cs
- FocusWithinProperty.cs
- ManagedWndProcTracker.cs
- ArcSegment.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- NavigationHelper.cs
- DataSourceProvider.cs
- CommandBindingCollection.cs
- IsolatedStorageFile.cs
- WindowClosedEventArgs.cs
- TypeGeneratedEventArgs.cs
- SecurityUtils.cs
- PolyBezierSegmentFigureLogic.cs
- DataGridViewRowsRemovedEventArgs.cs
- MarshalDirectiveException.cs
- ListViewGroup.cs
- ClientBuildManager.cs
- CatalogPartDesigner.cs
- OracleConnectionStringBuilder.cs
- XmlEnumAttribute.cs
- MaterializeFromAtom.cs
- IpcServerChannel.cs
- MulticastDelegate.cs
- WorkflowInstanceContextProvider.cs
- SimpleRecyclingCache.cs
- TextRange.cs
- XmlSchemaAnnotation.cs
- DbConnectionPoolIdentity.cs
- Logging.cs
- Profiler.cs
- Point4D.cs
- DoubleLink.cs
- PenCursorManager.cs
- AbstractDataSvcMapFileLoader.cs
- ManagedWndProcTracker.cs
- InstanceOwnerQueryResult.cs
- UInt32Storage.cs
- StringOutput.cs
- XsltException.cs
- FontStyles.cs
- NewArrayExpression.cs
- RenderingEventArgs.cs
- TreeNodeStyle.cs
- GridViewRowEventArgs.cs
- DocumentXmlWriter.cs
- CharacterHit.cs
- BooleanStorage.cs
- WaitingCursor.cs
- ResolveMatches11.cs
- XPathNode.cs
- RequestUriProcessor.cs
- TransformGroup.cs
- Adorner.cs
- ParserStreamGeometryContext.cs
- CaseStatement.cs
- XPathNavigatorReader.cs
- GeometryValueSerializer.cs
- _SafeNetHandles.cs
- AnimationClock.cs
- Executor.cs
- MemberInfoSerializationHolder.cs
- MissingFieldException.cs
- VariantWrapper.cs
- CacheEntry.cs
- TcpTransportElement.cs
- ContentFilePart.cs
- HttpStreams.cs
- ListViewPagedDataSource.cs
- InternalUserCancelledException.cs
- MessageContractImporter.cs