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
- XmlAnyElementAttributes.cs
- EditingMode.cs
- InstanceDataCollectionCollection.cs
- DataRelationPropertyDescriptor.cs
- StorageBasedPackageProperties.cs
- TreeViewCancelEvent.cs
- ContextMarshalException.cs
- ServerIdentity.cs
- RectangleHotSpot.cs
- AnnotationStore.cs
- StyleTypedPropertyAttribute.cs
- ImageMetadata.cs
- _ScatterGatherBuffers.cs
- ConfigurationManager.cs
- ParagraphResult.cs
- ScriptBehaviorDescriptor.cs
- EntityKey.cs
- TableAdapterManagerGenerator.cs
- HandlerFactoryWrapper.cs
- CommandEventArgs.cs
- EndpointAddress10.cs
- WebControl.cs
- QuaternionAnimation.cs
- ListViewEditEventArgs.cs
- WebConfigManager.cs
- PageMediaType.cs
- Signature.cs
- XPathConvert.cs
- PrivilegeNotHeldException.cs
- AssemblyUtil.cs
- ListViewInsertionMark.cs
- Visual.cs
- ObjectDataSourceView.cs
- DateTimeOffsetStorage.cs
- CryptoKeySecurity.cs
- LinearGradientBrush.cs
- FileSystemInfo.cs
- WindowsSpinner.cs
- AuthStoreRoleProvider.cs
- PtsContext.cs
- WebDescriptionAttribute.cs
- EmbossBitmapEffect.cs
- LocalizableAttribute.cs
- odbcmetadatacollectionnames.cs
- DataBinding.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- DataGridViewDataConnection.cs
- CodeComment.cs
- ScriptingProfileServiceSection.cs
- Empty.cs
- SecurityKeyType.cs
- OutputCache.cs
- SmtpClient.cs
- SuppressMergeCheckAttribute.cs
- SqlClientMetaDataCollectionNames.cs
- ResourceProviderFactory.cs
- DispatcherBuilder.cs
- SqlParameterCollection.cs
- TextSpanModifier.cs
- QueryProcessor.cs
- ServiceModelConfiguration.cs
- ContentType.cs
- WebPartRestoreVerb.cs
- ScrollPattern.cs
- ChangeConflicts.cs
- SqlClientMetaDataCollectionNames.cs
- FormatConvertedBitmap.cs
- XmlSerializerFormatAttribute.cs
- XmlDocumentSerializer.cs
- LineMetrics.cs
- HashLookup.cs
- BoundsDrawingContextWalker.cs
- HandledEventArgs.cs
- DynamicQueryableWrapper.cs
- AtomMaterializer.cs
- PropertyRecord.cs
- ListBoxChrome.cs
- TypedOperationInfo.cs
- CursorConverter.cs
- XsltSettings.cs
- documentsequencetextcontainer.cs
- CatalogPartChrome.cs
- TableItemStyle.cs
- WebPartConnectionsCancelEventArgs.cs
- SqlTypeConverter.cs
- TypeRefElement.cs
- SoapDocumentMethodAttribute.cs
- RijndaelManagedTransform.cs
- HttpCacheParams.cs
- OutputCacheModule.cs
- DetailsView.cs
- HierarchicalDataSourceIDConverter.cs
- LicenseProviderAttribute.cs
- xsdvalidator.cs
- DataListCommandEventArgs.cs
- HtmlGenericControl.cs
- ToolStripPanelRow.cs
- HttpResponseBase.cs
- PenLineJoinValidation.cs
- DbProviderConfigurationHandler.cs