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
- AttachedPropertyBrowsableAttribute.cs
- DataGridSortCommandEventArgs.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- CodeArrayCreateExpression.cs
- MonikerUtility.cs
- XmlSchema.cs
- COM2Enum.cs
- VoiceInfo.cs
- Line.cs
- x509utils.cs
- ControlParameter.cs
- StorageEntitySetMapping.cs
- PackageRelationshipSelector.cs
- SqlGatherConsumedAliases.cs
- TemplateApplicationHelper.cs
- ListCollectionView.cs
- LicFileLicenseProvider.cs
- SqlColumnizer.cs
- DelayedRegex.cs
- _NativeSSPI.cs
- validation.cs
- KnownBoxes.cs
- GridViewDeletedEventArgs.cs
- FragmentQueryKB.cs
- ReachFixedDocumentSerializer.cs
- UpdatePanelTriggerCollection.cs
- SamlAuthorizationDecisionStatement.cs
- HtmlLiteralTextAdapter.cs
- CodeTypeReference.cs
- ResizeGrip.cs
- assertwrapper.cs
- CodeBlockBuilder.cs
- PassportPrincipal.cs
- CollectionBase.cs
- FlowLayoutPanel.cs
- WMIGenerator.cs
- ExtensionWindow.cs
- IResourceProvider.cs
- ManagementException.cs
- ActivationServices.cs
- BitConverter.cs
- ListBoxAutomationPeer.cs
- MetadataPropertyvalue.cs
- cryptoapiTransform.cs
- QueryStack.cs
- HttpListenerResponse.cs
- BrowserCapabilitiesCompiler.cs
- FrameworkContextData.cs
- DefaultTypeArgumentAttribute.cs
- Calendar.cs
- NullableFloatAverageAggregationOperator.cs
- DynamicQueryableWrapper.cs
- SettingsSection.cs
- DescendentsWalker.cs
- VariableModifiersHelper.cs
- BuiltInExpr.cs
- RequestCachingSection.cs
- ObjectDataSourceSelectingEventArgs.cs
- HtmlAnchor.cs
- ReachUIElementCollectionSerializerAsync.cs
- Debugger.cs
- webeventbuffer.cs
- Size3D.cs
- SignedInfo.cs
- BooleanKeyFrameCollection.cs
- PathTooLongException.cs
- CryptoApi.cs
- InvalidDataException.cs
- MultipartIdentifier.cs
- ButtonBaseAutomationPeer.cs
- ModuleConfigurationInfo.cs
- _WinHttpWebProxyDataBuilder.cs
- StandardCommands.cs
- ReachBasicContext.cs
- SystemDiagnosticsSection.cs
- IDReferencePropertyAttribute.cs
- MessageBuffer.cs
- Renderer.cs
- PropertyValueUIItem.cs
- VisualBasicValue.cs
- TextEditorContextMenu.cs
- NonceToken.cs
- CodeRemoveEventStatement.cs
- Mapping.cs
- TraceUtility.cs
- DataSourceCacheDurationConverter.cs
- PrintPageEvent.cs
- SafeFileMappingHandle.cs
- GregorianCalendar.cs
- TextTreeRootNode.cs
- DisplayInformation.cs
- WindowsIdentity.cs
- SQLChars.cs
- RemoteWebConfigurationHost.cs
- TextFormatterHost.cs
- TcpProcessProtocolHandler.cs
- RtfControls.cs
- DocumentsTrace.cs
- JournalEntry.cs
- Point3DCollectionValueSerializer.cs