Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- StoreItemCollection.cs
- SemaphoreSecurity.cs
- ActivityTypeCodeDomSerializer.cs
- wmiprovider.cs
- InArgumentConverter.cs
- SymbolTable.cs
- CompressionTransform.cs
- HitTestDrawingContextWalker.cs
- DoubleKeyFrameCollection.cs
- DateBoldEvent.cs
- XmlObjectSerializerReadContext.cs
- OleDbParameterCollection.cs
- MediaScriptCommandRoutedEventArgs.cs
- OptionUsage.cs
- ToolStripManager.cs
- Border.cs
- ApplicationHost.cs
- GridSplitter.cs
- UriTemplateTrieNode.cs
- DateTimeFormatInfoScanner.cs
- TemplateBamlRecordReader.cs
- Int16.cs
- XmlAnyElementAttribute.cs
- FormatSettings.cs
- BoolExpression.cs
- SelectorAutomationPeer.cs
- ListView.cs
- Canvas.cs
- SponsorHelper.cs
- EmptyWithCancelationCheckWorkItem.cs
- LightweightCodeGenerator.cs
- LoginName.cs
- HwndKeyboardInputProvider.cs
- CaseStatementProjectedSlot.cs
- ControlCachePolicy.cs
- DataGridViewSortCompareEventArgs.cs
- TableLayoutColumnStyleCollection.cs
- FileDataSourceCache.cs
- ReadWriteObjectLock.cs
- AttributeEmitter.cs
- CryptoKeySecurity.cs
- LinqToSqlWrapper.cs
- FileDetails.cs
- LoginUtil.cs
- WmpBitmapDecoder.cs
- ElapsedEventArgs.cs
- ExpressionContext.cs
- ColumnResizeAdorner.cs
- TcpTransportSecurity.cs
- WebBrowserNavigatingEventHandler.cs
- CompiledQueryCacheEntry.cs
- DesignerVerbCollection.cs
- HealthMonitoringSectionHelper.cs
- ReadOnlyHierarchicalDataSourceView.cs
- PropertyStore.cs
- AvTraceFormat.cs
- __ComObject.cs
- EnumConverter.cs
- Attachment.cs
- cookiecontainer.cs
- _AutoWebProxyScriptWrapper.cs
- TakeQueryOptionExpression.cs
- ProcessStartInfo.cs
- ClientScriptManager.cs
- DomainConstraint.cs
- RegexInterpreter.cs
- DataGridViewCellValueEventArgs.cs
- PopOutPanel.cs
- DesignerSelectionListAdapter.cs
- CompModSwitches.cs
- PointCollection.cs
- ControlBindingsCollection.cs
- DbSetClause.cs
- BindingBase.cs
- DataGridViewTopLeftHeaderCell.cs
- WebBrowserHelper.cs
- NamedPipeTransportElement.cs
- OutputScopeManager.cs
- KeyValuePair.cs
- VisualCollection.cs
- JoinTreeNode.cs
- PersonalizationEntry.cs
- SubqueryRules.cs
- FormDesigner.cs
- DiagnosticsConfiguration.cs
- RealizationDrawingContextWalker.cs
- BinaryCommonClasses.cs
- HtmlInputPassword.cs
- Application.cs
- LogReservationCollection.cs
- EventManager.cs
- IDQuery.cs
- SessionIDManager.cs
- FontDifferentiator.cs
- DialogResultConverter.cs
- mediaeventshelper.cs
- NoPersistProperty.cs
- FontInfo.cs
- Timeline.cs
- linebase.cs