Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- XmlQueryCardinality.cs
- Help.cs
- ReadWriteSpinLock.cs
- ConsumerConnectionPoint.cs
- TraceListener.cs
- safex509handles.cs
- BooleanExpr.cs
- MultipleCopiesCollection.cs
- regiisutil.cs
- ClientOptions.cs
- DataViewManager.cs
- ProtocolsConfigurationEntry.cs
- XmlSchemaAnnotation.cs
- StylusButton.cs
- ResizeBehavior.cs
- GeneratedContractType.cs
- DoubleLinkList.cs
- LineUtil.cs
- EntityDescriptor.cs
- TextViewSelectionProcessor.cs
- Maps.cs
- LinqDataSourceDeleteEventArgs.cs
- TextPatternIdentifiers.cs
- CodeMethodInvokeExpression.cs
- Single.cs
- Validator.cs
- ReferencedAssembly.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- GridToolTip.cs
- OdbcConnection.cs
- Triplet.cs
- ExpressionCopier.cs
- ModelPerspective.cs
- DockPanel.cs
- ConstantSlot.cs
- BaseHashHelper.cs
- TrackingMemoryStream.cs
- SqlConnectionPoolGroupProviderInfo.cs
- StrongName.cs
- DispatchChannelSink.cs
- DefaultCommandConverter.cs
- PropertyEmitter.cs
- EntityDataSourceValidationException.cs
- SQLConvert.cs
- RenderDataDrawingContext.cs
- CloudCollection.cs
- KeyTimeConverter.cs
- EntryIndex.cs
- RetrieveVirtualItemEventArgs.cs
- SafeThreadHandle.cs
- EntityDataReader.cs
- Rect.cs
- EntityCommandDefinition.cs
- PasswordBoxAutomationPeer.cs
- WebPartTransformer.cs
- Int32Rect.cs
- DataIdProcessor.cs
- ScriptHandlerFactory.cs
- FileFormatException.cs
- CodeStatement.cs
- StructuredProperty.cs
- HtmlDocument.cs
- SecurityPermission.cs
- ModelVisual3D.cs
- AutomationPropertyInfo.cs
- SQLDateTime.cs
- DataServiceContext.cs
- PreservationFileWriter.cs
- EndOfStreamException.cs
- PlacementWorkspace.cs
- HttpSocketManager.cs
- HostedElements.cs
- RuntimeHandles.cs
- CodeDirectionExpression.cs
- QueueProcessor.cs
- Size.cs
- UnsupportedPolicyOptionsException.cs
- AssociationSetMetadata.cs
- XamlWrappingReader.cs
- DirectionalLight.cs
- TemplateInstanceAttribute.cs
- FormViewDeletedEventArgs.cs
- EncoderBestFitFallback.cs
- TextElementCollectionHelper.cs
- VarRefManager.cs
- HelpProvider.cs
- WebSysDefaultValueAttribute.cs
- DataContractSerializerFaultFormatter.cs
- CallbackValidator.cs
- JsonByteArrayDataContract.cs
- XmlWellformedWriter.cs
- FileUtil.cs
- XmlNotation.cs
- CryptoConfig.cs
- RemotingConfigParser.cs
- FixedSOMImage.cs
- Ipv6Element.cs
- TemplateControlParser.cs
- WinFormsSpinner.cs
- ExpressionNormalizer.cs