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
- ZipIOCentralDirectoryBlock.cs
- JsonDataContract.cs
- BindingExpressionUncommonField.cs
- ToolZone.cs
- TextEditor.cs
- DataControlLinkButton.cs
- DesignerActionVerbList.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SelectionProcessor.cs
- UIPermission.cs
- CheckBoxFlatAdapter.cs
- AccessViolationException.cs
- TemplatedAdorner.cs
- Utility.cs
- CommandID.cs
- mediapermission.cs
- AliasedSlot.cs
- ClientConfigurationSystem.cs
- QuaternionRotation3D.cs
- XsltConvert.cs
- HttpContext.cs
- GrammarBuilderRuleRef.cs
- filewebresponse.cs
- IndexedSelectQueryOperator.cs
- LineProperties.cs
- DBCommandBuilder.cs
- WorkflowServiceNamespace.cs
- VectorCollectionValueSerializer.cs
- assemblycache.cs
- RestClientProxyHandler.cs
- StylusButtonEventArgs.cs
- SqlXmlStorage.cs
- XmlValidatingReader.cs
- OleDbParameterCollection.cs
- LoginUtil.cs
- MetadataException.cs
- TemplateAction.cs
- SymbolType.cs
- SecurityTokenResolver.cs
- InkPresenter.cs
- UrlRoutingHandler.cs
- ValidatingReaderNodeData.cs
- SynchronizedCollection.cs
- mediapermission.cs
- HtmlInputSubmit.cs
- TypeGeneratedEventArgs.cs
- WriterOutput.cs
- RemoteWebConfigurationHostServer.cs
- DataBindingsDialog.cs
- LambdaCompiler.Address.cs
- AccessibleObject.cs
- ToolboxItemImageConverter.cs
- XmlUtil.cs
- QilParameter.cs
- DriveNotFoundException.cs
- Converter.cs
- HostUtils.cs
- EtwProvider.cs
- StructuredTypeEmitter.cs
- VideoDrawing.cs
- SafeNativeMethods.cs
- BinaryReader.cs
- XmlRawWriterWrapper.cs
- SamlAction.cs
- StoreAnnotationsMap.cs
- AutomationPatternInfo.cs
- SimpleWorkerRequest.cs
- AuthenticationService.cs
- EncoderReplacementFallback.cs
- WebExceptionStatus.cs
- Rect3DValueSerializer.cs
- TableCellsCollectionEditor.cs
- ComplexBindingPropertiesAttribute.cs
- DataStreams.cs
- SqlClientFactory.cs
- RequestQueryProcessor.cs
- DataGridViewRowCancelEventArgs.cs
- UnhandledExceptionEventArgs.cs
- ComponentManagerBroker.cs
- ExceptionRoutedEventArgs.cs
- BuildProvidersCompiler.cs
- mediaeventshelper.cs
- RegistryPermission.cs
- AspNetSynchronizationContext.cs
- CombinedGeometry.cs
- AutoGeneratedFieldProperties.cs
- LayoutDump.cs
- VisualBrush.cs
- SqlTypesSchemaImporter.cs
- SharedConnectionListener.cs
- Vector.cs
- StringFreezingAttribute.cs
- InlinedLocationReference.cs
- CqlBlock.cs
- DefaultBindingPropertyAttribute.cs
- DefaultObjectMappingItemCollection.cs
- DataControlCommands.cs
- ProfileInfo.cs
- XPathNavigator.cs
- ManifestResourceInfo.cs