Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FixedTextPointer.cs
- OdbcConnectionPoolProviderInfo.cs
- ServerType.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- Schema.cs
- ButtonBase.cs
- ResXResourceSet.cs
- DispatcherOperation.cs
- IntSecurity.cs
- PropertyEmitter.cs
- HandlerBase.cs
- Label.cs
- FontUnit.cs
- AmbientLight.cs
- ScriptResourceInfo.cs
- LayoutDump.cs
- JournalEntryStack.cs
- HtmlInputRadioButton.cs
- ResourceProviderFactory.cs
- PreDigestedSignedInfo.cs
- Clock.cs
- VariantWrapper.cs
- recordstatefactory.cs
- DeflateEmulationStream.cs
- CodeDirectoryCompiler.cs
- WebExceptionStatus.cs
- MenuAdapter.cs
- SynchronizationLockException.cs
- SchemaNotation.cs
- namescope.cs
- SocketPermission.cs
- WebColorConverter.cs
- VectorAnimationBase.cs
- HostedHttpRequestAsyncResult.cs
- SubMenuStyleCollection.cs
- RSAPKCS1KeyExchangeFormatter.cs
- TemplateAction.cs
- WebBrowserDesigner.cs
- CopyOfAction.cs
- Int32.cs
- GridView.cs
- ElementUtil.cs
- BufferBuilder.cs
- XmlObjectSerializerReadContext.cs
- FlowLayoutSettings.cs
- UpdatePanelTriggerCollection.cs
- XmlElementAttribute.cs
- TextRunProperties.cs
- ProfileWorkflowElement.cs
- LayoutInformation.cs
- DbProviderConfigurationHandler.cs
- MissingFieldException.cs
- TdsRecordBufferSetter.cs
- RuleProcessor.cs
- XmlNavigatorFilter.cs
- FilteredXmlReader.cs
- FormViewInsertedEventArgs.cs
- oledbmetadatacolumnnames.cs
- ExecutionContext.cs
- Model3D.cs
- ErrorRuntimeConfig.cs
- RoleServiceManager.cs
- _DigestClient.cs
- safex509handles.cs
- SqlUserDefinedTypeAttribute.cs
- PrimitiveList.cs
- recordstatefactory.cs
- CheckedListBox.cs
- tabpagecollectioneditor.cs
- Collection.cs
- CompiledIdentityConstraint.cs
- ListView.cs
- NativeMethods.cs
- KeyedCollection.cs
- AppModelKnownContentFactory.cs
- WebPartRestoreVerb.cs
- XmlEntity.cs
- WindowsToolbarAsMenu.cs
- ActivityTypeDesigner.xaml.cs
- SAPICategories.cs
- SiteMapSection.cs
- EntityCommandExecutionException.cs
- TraceData.cs
- DocumentsTrace.cs
- ZipIOExtraFieldZip64Element.cs
- FlowDocumentReaderAutomationPeer.cs
- GeometryDrawing.cs
- OperationGenerator.cs
- HtmlMeta.cs
- DeclarativeCatalogPart.cs
- ToolStripTextBox.cs
- DesignerDataTableBase.cs
- InstanceKeyNotReadyException.cs
- DiagnosticsConfiguration.cs
- NetNamedPipeBindingElement.cs
- ReachUIElementCollectionSerializerAsync.cs
- MarkupExtensionParser.cs
- EventRouteFactory.cs
- OdbcConnectionOpen.cs
- ResetableIterator.cs