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
- ContentType.cs
- DesignerExtenders.cs
- FormsAuthenticationConfiguration.cs
- ButtonFlatAdapter.cs
- Color.cs
- SiteMapNodeItemEventArgs.cs
- GlyphsSerializer.cs
- TypeTypeConverter.cs
- XMLDiffLoader.cs
- SecureEnvironment.cs
- DataMemberFieldConverter.cs
- CssStyleCollection.cs
- DesignerForm.cs
- ToolStripItemTextRenderEventArgs.cs
- SqlMethods.cs
- CodeAttachEventStatement.cs
- InvalidOleVariantTypeException.cs
- Timer.cs
- BamlReader.cs
- MenuAutomationPeer.cs
- Pkcs9Attribute.cs
- SystemIPAddressInformation.cs
- CodeNamespace.cs
- TextBox.cs
- XamlSerializerUtil.cs
- FormatVersion.cs
- RijndaelManaged.cs
- controlskin.cs
- WebHttpDispatchOperationSelector.cs
- PortCache.cs
- CrossAppDomainChannel.cs
- COM2ExtendedBrowsingHandler.cs
- MethodRental.cs
- DataGridViewToolTip.cs
- xmlsaver.cs
- SqlLiftWhereClauses.cs
- TextSchema.cs
- Compiler.cs
- ToolStripMenuItem.cs
- UserNameSecurityTokenParameters.cs
- ControlsConfig.cs
- WebBodyFormatMessageProperty.cs
- MethodImplAttribute.cs
- PropertyGridView.cs
- WebConfigurationFileMap.cs
- Internal.cs
- CustomErrorsSection.cs
- SqlGenericUtil.cs
- MetadataItem_Static.cs
- HelpEvent.cs
- COM2EnumConverter.cs
- xamlnodes.cs
- FastEncoder.cs
- ParsedAttributeCollection.cs
- ItemCollection.cs
- ComplexObject.cs
- _AutoWebProxyScriptEngine.cs
- DataContractSet.cs
- SqlFunctionAttribute.cs
- SqlUserDefinedTypeAttribute.cs
- CryptoStream.cs
- ListBindingConverter.cs
- mediapermission.cs
- MarkupCompiler.cs
- MailWebEventProvider.cs
- MenuItemStyle.cs
- CaseInsensitiveHashCodeProvider.cs
- TouchFrameEventArgs.cs
- MsmqBindingBase.cs
- ListBox.cs
- MethodBuilder.cs
- InputMethodStateChangeEventArgs.cs
- SortQuery.cs
- SourceFileInfo.cs
- DefaultShape.cs
- IpcChannel.cs
- XPathNavigator.cs
- Symbol.cs
- ImageSource.cs
- TextSpan.cs
- ReflectionPermission.cs
- VisualStyleRenderer.cs
- BitConverter.cs
- MultilineStringConverter.cs
- OutputCacheSettings.cs
- Cursors.cs
- UnaryOperationBinder.cs
- GraphicsContainer.cs
- GridViewRowEventArgs.cs
- WindowShowOrOpenTracker.cs
- DataGridViewColumnCollection.cs
- PageVisual.cs
- Light.cs
- ProxyWebPartManagerDesigner.cs
- EdmPropertyAttribute.cs
- XmlSchemaCollection.cs
- AffineTransform3D.cs
- TraceXPathNavigator.cs
- ViewStateException.cs
- ToolZone.cs