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
- figurelengthconverter.cs
- MetadataCacheItem.cs
- DiscreteKeyFrames.cs
- Geometry.cs
- TransformationRules.cs
- Dictionary.cs
- SpecialFolderEnumConverter.cs
- Timer.cs
- ListControlConvertEventArgs.cs
- WindowsToolbar.cs
- Timer.cs
- AccessibleObject.cs
- BamlTreeMap.cs
- XPathException.cs
- DataSourceCacheDurationConverter.cs
- ChannelManager.cs
- TextTrailingCharacterEllipsis.cs
- ArraySortHelper.cs
- SoapIgnoreAttribute.cs
- XmlWellformedWriterHelpers.cs
- ContextMenu.cs
- mongolianshape.cs
- RSAPKCS1SignatureFormatter.cs
- MtomMessageEncoder.cs
- Keywords.cs
- DataGridViewCellFormattingEventArgs.cs
- OneToOneMappingSerializer.cs
- NativeMethods.cs
- WebPartExportVerb.cs
- SiteMapNode.cs
- OdbcCommand.cs
- ButtonField.cs
- ArgIterator.cs
- AsyncInvokeOperation.cs
- Stroke2.cs
- XmlSchemaAttributeGroupRef.cs
- DispatcherHookEventArgs.cs
- ProcessStartInfo.cs
- StreamReader.cs
- AccessorTable.cs
- SelectingProviderEventArgs.cs
- UnsafeNativeMethodsPenimc.cs
- AffineTransform3D.cs
- HtmlControlPersistable.cs
- OleDbParameter.cs
- RequestSecurityTokenSerializer.cs
- VariableQuery.cs
- StyleXamlParser.cs
- ApplicationBuildProvider.cs
- StylusPointProperty.cs
- SqlServices.cs
- ToolboxCategory.cs
- PropertyReferenceExtension.cs
- Comparer.cs
- GeometryValueSerializer.cs
- PeerTransportSecuritySettings.cs
- AlternateView.cs
- ClientData.cs
- BinaryUtilClasses.cs
- CryptoKeySecurity.cs
- HtmlWindow.cs
- KeyBinding.cs
- SystemBrushes.cs
- RegexBoyerMoore.cs
- FileLoadException.cs
- StrokeIntersection.cs
- UnsafeNativeMethods.cs
- OdbcConnectionOpen.cs
- configsystem.cs
- RadioButtonFlatAdapter.cs
- ImportOptions.cs
- StaticExtension.cs
- FacetDescriptionElement.cs
- InstancePersistenceContext.cs
- Operator.cs
- HtmlInputRadioButton.cs
- GeneralTransform3D.cs
- PersonalizationState.cs
- OleStrCAMarshaler.cs
- Bits.cs
- CatalogPartChrome.cs
- SqlCommandSet.cs
- WebPartDisplayModeEventArgs.cs
- ObjectItemLoadingSessionData.cs
- ExtensibleSyndicationObject.cs
- WorkflowValidationFailedException.cs
- KeySpline.cs
- Permission.cs
- WsatConfiguration.cs
- UpdatePanelTriggerCollection.cs
- NodeLabelEditEvent.cs
- GroupDescription.cs
- SoapElementAttribute.cs
- NoPersistProperty.cs
- Selector.cs
- StatusBarDesigner.cs
- SmiContext.cs
- HtmlEmptyTagControlBuilder.cs
- Metadata.cs
- Compiler.cs