Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- x509utils.cs
- CodeTypeDelegate.cs
- cache.cs
- IntPtr.cs
- IndexingContentUnit.cs
- TraceInternal.cs
- SchemaRegistration.cs
- ReceiveContent.cs
- IisTraceWebEventProvider.cs
- BamlStream.cs
- ProfessionalColors.cs
- RtfNavigator.cs
- ConnectionPointCookie.cs
- Separator.cs
- SpotLight.cs
- PropertyDescriptor.cs
- _ShellExpression.cs
- TransactionValidationBehavior.cs
- TypefaceCollection.cs
- EndpointConfigContainer.cs
- TemplateBindingExtension.cs
- SpellerError.cs
- SpecularMaterial.cs
- RegexStringValidator.cs
- Profiler.cs
- OracleSqlParser.cs
- EdmComplexTypeAttribute.cs
- DataGridViewTopLeftHeaderCell.cs
- DateTimeConstantAttribute.cs
- MdiWindowListItemConverter.cs
- URLAttribute.cs
- ContentPosition.cs
- ElementHost.cs
- ContentAlignmentEditor.cs
- HostingEnvironmentException.cs
- DataSourceComponent.cs
- DataServiceRequest.cs
- UserControl.cs
- ReflectionUtil.cs
- CompositeCollection.cs
- DecimalConstantAttribute.cs
- Mouse.cs
- ProfilePropertyMetadata.cs
- KeyValueConfigurationElement.cs
- ContextInformation.cs
- Ipv6Element.cs
- TemplateBindingExpression.cs
- securitycriticaldataClass.cs
- DescriptionAttribute.cs
- Label.cs
- DatasetMethodGenerator.cs
- ListView.cs
- DataMisalignedException.cs
- ItemChangedEventArgs.cs
- RectValueSerializer.cs
- X509InitiatorCertificateClientElement.cs
- Dynamic.cs
- EncryptedData.cs
- StrokeCollection2.cs
- Imaging.cs
- Mappings.cs
- EdmToObjectNamespaceMap.cs
- HtmlShimManager.cs
- WebEvents.cs
- RichTextBoxContextMenu.cs
- errorpatternmatcher.cs
- PasswordBoxAutomationPeer.cs
- Lease.cs
- GcHandle.cs
- SafeFileMappingHandle.cs
- StringResourceManager.cs
- DateTimeParse.cs
- RoleService.cs
- PropertyConverter.cs
- FontClient.cs
- ConfigXmlSignificantWhitespace.cs
- ContextQuery.cs
- BitmapEffectGroup.cs
- ReachNamespaceInfo.cs
- EdgeModeValidation.cs
- Funcletizer.cs
- PackWebResponse.cs
- TextAutomationPeer.cs
- AdornerPresentationContext.cs
- DispatcherObject.cs
- ExceptionUtil.cs
- QueryStringHandler.cs
- ListViewItem.cs
- DataBindingCollection.cs
- FastEncoder.cs
- ClientSession.cs
- UrlAuthFailedErrorFormatter.cs
- ImageIndexConverter.cs
- TypeConvertions.cs
- ServiceXNameTypeConverter.cs
- CipherData.cs
- ScrollPattern.cs
- PenThread.cs
- TraceHwndHost.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs