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
- XmlSchemaInferenceException.cs
- MetabaseServerConfig.cs
- WebPartHelpVerb.cs
- ListViewSelectEventArgs.cs
- XPathDocumentNavigator.cs
- DataControlButton.cs
- ObjectHelper.cs
- ValidationPropertyAttribute.cs
- SafeEventLogReadHandle.cs
- DecimalAnimation.cs
- IProvider.cs
- RIPEMD160Managed.cs
- EncodingDataItem.cs
- ContentFilePart.cs
- PlainXmlDeserializer.cs
- ExpressionUtilities.cs
- TypeConvertions.cs
- Animatable.cs
- Simplifier.cs
- EmbeddedObject.cs
- ControlCollection.cs
- TableHeaderCell.cs
- Encoder.cs
- OptimizerPatterns.cs
- CodeNamespaceImportCollection.cs
- TimelineGroup.cs
- SystemColors.cs
- SortableBindingList.cs
- DiffuseMaterial.cs
- ClientProtocol.cs
- Pair.cs
- PropertyFilterAttribute.cs
- QilGeneratorEnv.cs
- TypeDescriptionProvider.cs
- AssemblyAttributes.cs
- HierarchicalDataSourceControl.cs
- WebPartManager.cs
- ImageSourceConverter.cs
- ListViewItemEventArgs.cs
- Base64Encoder.cs
- InheritanceAttribute.cs
- AuthenticodeSignatureInformation.cs
- TypeLibConverter.cs
- RemotingSurrogateSelector.cs
- SqlConnectionStringBuilder.cs
- XmlILConstructAnalyzer.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- OdbcStatementHandle.cs
- SQLCharsStorage.cs
- CommentEmitter.cs
- SqlDataSource.cs
- RayMeshGeometry3DHitTestResult.cs
- BufferedGraphicsContext.cs
- SqlDependencyUtils.cs
- RegexWorker.cs
- DynamicResourceExtension.cs
- FragmentNavigationEventArgs.cs
- ListenerHandler.cs
- OleDbConnectionInternal.cs
- SoapObjectWriter.cs
- RenameRuleObjectDialog.Designer.cs
- FormViewRow.cs
- xsdvalidator.cs
- InteropAutomationProvider.cs
- RtfNavigator.cs
- Translator.cs
- CollectionExtensions.cs
- TouchFrameEventArgs.cs
- XmlName.cs
- DeferredElementTreeState.cs
- TextPattern.cs
- __FastResourceComparer.cs
- ConnectionStringsSection.cs
- KeyGestureConverter.cs
- TransformGroup.cs
- CharAnimationBase.cs
- HostProtectionException.cs
- TextFormatterHost.cs
- ColorConvertedBitmap.cs
- LinqDataSourceDisposeEventArgs.cs
- ToolStripRenderEventArgs.cs
- ProcessModelInfo.cs
- AnnotationObservableCollection.cs
- _MultipleConnectAsync.cs
- TemplatePartAttribute.cs
- WorkflowDefinitionContext.cs
- DBCSCodePageEncoding.cs
- EntitySqlQueryCacheKey.cs
- _AutoWebProxyScriptEngine.cs
- Update.cs
- DecimalConstantAttribute.cs
- MonthCalendar.cs
- InvokeMethod.cs
- ValidationHelper.cs
- Native.cs
- HttpStreamXmlDictionaryWriter.cs
- WebPartConnection.cs
- SqlDataReaderSmi.cs
- InternalsVisibleToAttribute.cs
- QilCloneVisitor.cs