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
- ContentTextAutomationPeer.cs
- MexBindingBindingCollectionElement.cs
- DragStartedEventArgs.cs
- PeerNameRegistration.cs
- Model3D.cs
- ResourceProviderFactory.cs
- Funcletizer.cs
- WebPartTransformerAttribute.cs
- SqlDataReaderSmi.cs
- XomlCompilerParameters.cs
- SiteMapProvider.cs
- CheckBoxDesigner.cs
- EncodingInfo.cs
- DataGridViewCellStateChangedEventArgs.cs
- DataRowIndexBuffer.cs
- EntityConnectionStringBuilder.cs
- StickyNoteHelper.cs
- GeometryCombineModeValidation.cs
- EventMap.cs
- UIHelper.cs
- activationcontext.cs
- ListenerElementsCollection.cs
- Transform3D.cs
- HtmlToClrEventProxy.cs
- SubstitutionList.cs
- SelectionProviderWrapper.cs
- Socket.cs
- StylusShape.cs
- AsymmetricKeyExchangeDeformatter.cs
- FontConverter.cs
- TemplateAction.cs
- TargetParameterCountException.cs
- TaskExceptionHolder.cs
- AsyncPostBackErrorEventArgs.cs
- ProxyFragment.cs
- ServiceHttpHandlerFactory.cs
- ListBox.cs
- AdRotator.cs
- TargetException.cs
- HttpContext.cs
- EndpointAddressProcessor.cs
- CodeIdentifiers.cs
- ScriptRegistrationManager.cs
- NetMsmqSecurityMode.cs
- GeometryGroup.cs
- BrowserCapabilitiesFactoryBase.cs
- AssociatedControlConverter.cs
- DiscoveryClientOutputChannel.cs
- WorkflowApplicationIdleEventArgs.cs
- PersonalizationProviderHelper.cs
- ClientType.cs
- XmlWriter.cs
- CursorConverter.cs
- _CacheStreams.cs
- MenuCommands.cs
- ConfigurationManagerInternalFactory.cs
- Table.cs
- NameObjectCollectionBase.cs
- GeometryConverter.cs
- AuthenticatingEventArgs.cs
- ToolboxItemCollection.cs
- ArraySet.cs
- CustomActivityDesigner.cs
- KeyInfo.cs
- CompositeKey.cs
- Connector.cs
- InputElement.cs
- CompensableActivity.cs
- GroupBoxRenderer.cs
- xmlsaver.cs
- figurelength.cs
- RuleSet.cs
- Image.cs
- LayoutTableCell.cs
- FileAuthorizationModule.cs
- InlinedAggregationOperatorEnumerator.cs
- HtmlWindow.cs
- DataListItemEventArgs.cs
- LockCookie.cs
- Win32KeyboardDevice.cs
- securitycriticaldata.cs
- EventPrivateKey.cs
- SafeNativeMemoryHandle.cs
- AppLevelCompilationSectionCache.cs
- ComboBoxAutomationPeer.cs
- SerializationIncompleteException.cs
- ListCommandEventArgs.cs
- SubstitutionList.cs
- Inflater.cs
- ModelTreeEnumerator.cs
- DelegateSerializationHolder.cs
- ElementProxy.cs
- XmlKeywords.cs
- RightsManagementErrorHandler.cs
- ContractCodeDomInfo.cs
- AsyncPostBackErrorEventArgs.cs
- InlineCollection.cs
- CodeRemoveEventStatement.cs
- KeyValuePair.cs
- ITextView.cs