Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- TransactionsSectionGroup.cs
- XPathNodeList.cs
- XmlAnyAttributeAttribute.cs
- MouseDevice.cs
- FormViewUpdateEventArgs.cs
- CharKeyFrameCollection.cs
- SectionInput.cs
- _LazyAsyncResult.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- OleTxTransactionInfo.cs
- ConstNode.cs
- RemotingAttributes.cs
- WindowsStreamSecurityElement.cs
- TextContainerChangedEventArgs.cs
- ImpersonationContext.cs
- RootNamespaceAttribute.cs
- GeometryHitTestResult.cs
- HtmlTable.cs
- EmptyElement.cs
- TreeBuilder.cs
- AndCondition.cs
- XmlWriterTraceListener.cs
- SystemDropShadowChrome.cs
- OnOperation.cs
- BufferBuilder.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- TextTreeFixupNode.cs
- Point3D.cs
- RenderTargetBitmap.cs
- DropDownList.cs
- TypeSource.cs
- SiteMapPath.cs
- Base64Encoder.cs
- ProtocolsConfiguration.cs
- UInt32Converter.cs
- ConnectionManagementElementCollection.cs
- ZoneLinkButton.cs
- Matrix3DValueSerializer.cs
- OracleCommandSet.cs
- ObjectDataSourceView.cs
- SimpleBitVector32.cs
- ReferencedAssembly.cs
- MessageSecurityProtocolFactory.cs
- CancellationHandler.cs
- DataRowCollection.cs
- Parameter.cs
- DeviceContexts.cs
- EndpointAddress.cs
- GraphicsState.cs
- FileFormatException.cs
- TextEditorTyping.cs
- PropertyConverter.cs
- DocumentReferenceCollection.cs
- cryptoapiTransform.cs
- WebConfigurationManager.cs
- FontCacheLogic.cs
- WindowsNonControl.cs
- ColumnWidthChangingEvent.cs
- BindingWorker.cs
- SQLDateTimeStorage.cs
- XmlWhitespace.cs
- InkCollectionBehavior.cs
- EntityTypeEmitter.cs
- AtomServiceDocumentSerializer.cs
- DocobjHost.cs
- WindowsPrincipal.cs
- DBConcurrencyException.cs
- CollectionView.cs
- _KerberosClient.cs
- WsatServiceCertificate.cs
- RequestSecurityTokenSerializer.cs
- WizardStepBase.cs
- Filter.cs
- MSG.cs
- ArgumentException.cs
- DocumentPageTextView.cs
- ControllableStoryboardAction.cs
- HiddenFieldPageStatePersister.cs
- OleDragDropHandler.cs
- PrintDialog.cs
- ContentElementAutomationPeer.cs
- RawKeyboardInputReport.cs
- PathGeometry.cs
- AppDomainProtocolHandler.cs
- OuterGlowBitmapEffect.cs
- BuiltInExpr.cs
- HttpConfigurationContext.cs
- TextWriter.cs
- Debug.cs
- mediaeventshelper.cs
- DoubleAnimationBase.cs
- ButtonField.cs
- BehaviorEditorPart.cs
- TextLineResult.cs
- MexNamedPipeBindingCollectionElement.cs
- OleDbParameter.cs
- StsCommunicationException.cs
- AttributeEmitter.cs
- DataGridViewCellValueEventArgs.cs
- RowToParametersTransformer.cs