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
- TypeBuilder.cs
- LoadRetryStrategyFactory.cs
- OverlappedAsyncResult.cs
- VariableAction.cs
- EventRoute.cs
- ChangeInterceptorAttribute.cs
- SelectionListDesigner.cs
- ByeOperation11AsyncResult.cs
- DateTimeConstantAttribute.cs
- CommandExpr.cs
- Substitution.cs
- ReferenceSchema.cs
- XmlBindingWorker.cs
- MailAddress.cs
- RadioButtonFlatAdapter.cs
- UICuesEvent.cs
- IDQuery.cs
- WsdlBuildProvider.cs
- XmlBaseWriter.cs
- ImpersonationContext.cs
- SpeechSeg.cs
- BitmapEffectInputData.cs
- TemplatedWizardStep.cs
- StringFormat.cs
- InternalConfigConfigurationFactory.cs
- DbProviderFactories.cs
- ValidatorCollection.cs
- ProtectedProviderSettings.cs
- OrderedDictionary.cs
- panel.cs
- TraceContextEventArgs.cs
- ObjRef.cs
- QueryCacheManager.cs
- FontCollection.cs
- DataRecordObjectView.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- SpellCheck.cs
- Condition.cs
- HttpListenerElement.cs
- ApplicationProxyInternal.cs
- SafeNativeMethods.cs
- CodeTryCatchFinallyStatement.cs
- CustomValidator.cs
- MailAddressCollection.cs
- DbConnectionPoolGroupProviderInfo.cs
- ElapsedEventArgs.cs
- ManagedFilter.cs
- UInt16Converter.cs
- QueryCacheEntry.cs
- Enum.cs
- WebPartDisplayMode.cs
- QueryReaderSettings.cs
- XmlSchemaValidator.cs
- DataDocumentXPathNavigator.cs
- AssemblyAttributes.cs
- LineMetrics.cs
- ScopeCompiler.cs
- Triangle.cs
- ExponentialEase.cs
- HttpContextServiceHost.cs
- DataGridColumnFloatingHeader.cs
- GridViewCancelEditEventArgs.cs
- CompilerCollection.cs
- SoapRpcMethodAttribute.cs
- JoinElimination.cs
- ToolStripDropTargetManager.cs
- ByteBufferPool.cs
- DesignBindingPicker.cs
- EdmToObjectNamespaceMap.cs
- WorkItem.cs
- XmlSchemaFacet.cs
- TriState.cs
- ISAPIWorkerRequest.cs
- WindowsToolbarAsMenu.cs
- AnnotationHighlightLayer.cs
- FileDialogCustomPlace.cs
- XmlElement.cs
- Switch.cs
- HttpCookie.cs
- MeshGeometry3D.cs
- MimeMultiPart.cs
- SapiInterop.cs
- MatrixUtil.cs
- WinEventQueueItem.cs
- InvokeMethod.cs
- MetadataItemEmitter.cs
- SamlAuthorityBinding.cs
- JsonWriterDelegator.cs
- NamespaceEmitter.cs
- RenamedEventArgs.cs
- MetadataItem_Static.cs
- FlowDocumentPage.cs
- HtmlCalendarAdapter.cs
- SqlDelegatedTransaction.cs
- TextFormatterContext.cs
- handlecollector.cs
- ConfigurationElementProperty.cs
- RootAction.cs
- Int16AnimationBase.cs
- MatcherBuilder.cs