Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / LocalValueEnumerator.cs / 1305600 / LocalValueEnumerator.cs
using System; using System.Collections; using System.Diagnostics; using MS.Internal.WindowsBase; #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) { if(obj is LocalValueEnumerator) { LocalValueEnumerator other = (LocalValueEnumerator) obj; return (_count == other._count && _index == other._index && _snapshot == other._snapshot); } else { // being compared against something that isn't a LocalValueEnumerator. return false; } } ////// 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; using MS.Internal.WindowsBase; #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) { if(obj is LocalValueEnumerator) { LocalValueEnumerator other = (LocalValueEnumerator) obj; return (_count == other._count && _index == other._index && _snapshot == other._snapshot); } else { // being compared against something that isn't a LocalValueEnumerator. return false; } } ////// 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
- CssClassPropertyAttribute.cs
- PlainXmlDeserializer.cs
- RemotingConfigParser.cs
- ContextDataSource.cs
- Deflater.cs
- DbCommandTree.cs
- Rect.cs
- ToolStripPanelCell.cs
- WebPartPersonalization.cs
- ArrayList.cs
- MetafileHeader.cs
- AttachmentCollection.cs
- OperationInfo.cs
- HuffCodec.cs
- PropertyMapper.cs
- MissingFieldException.cs
- PartialArray.cs
- Util.cs
- OdbcConnection.cs
- smtppermission.cs
- LogicalCallContext.cs
- HelpKeywordAttribute.cs
- _TimerThread.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- METAHEADER.cs
- FreezableCollection.cs
- ColorAnimation.cs
- StatusBarDrawItemEvent.cs
- CodeArgumentReferenceExpression.cs
- GetWinFXPath.cs
- OpenFileDialog.cs
- FileLoadException.cs
- ColorInterpolationModeValidation.cs
- ThreadTrace.cs
- ResetableIterator.cs
- hwndwrapper.cs
- Serializer.cs
- AddInProcess.cs
- MappedMetaModel.cs
- WriterOutput.cs
- Vertex.cs
- InfoCardArgumentException.cs
- ResourceReferenceExpressionConverter.cs
- SessionStateSection.cs
- ScheduleChanges.cs
- Unit.cs
- StackOverflowException.cs
- HandlerBase.cs
- ContractNamespaceAttribute.cs
- BinaryConverter.cs
- HyperLink.cs
- OrderPreservingMergeHelper.cs
- MultiPageTextView.cs
- RijndaelCryptoServiceProvider.cs
- LineBreak.cs
- LoopExpression.cs
- CopyCodeAction.cs
- ListItemConverter.cs
- PropertyPathConverter.cs
- CodePrimitiveExpression.cs
- EntityStoreSchemaFilterEntry.cs
- BamlTreeNode.cs
- Events.cs
- SoapParser.cs
- PhysicalAddress.cs
- IisTraceListener.cs
- ResourceDictionary.cs
- CacheModeConverter.cs
- If.cs
- TextServicesCompartmentContext.cs
- ReferencedAssemblyResolver.cs
- LocalizationParserHooks.cs
- IPAddress.cs
- ResourceReader.cs
- PersonalizationProviderCollection.cs
- InfoCardBinaryReader.cs
- QueryCacheEntry.cs
- ListBase.cs
- CompletionBookmark.cs
- TempFiles.cs
- DetailsViewDeleteEventArgs.cs
- SmtpTransport.cs
- UriExt.cs
- DisplayNameAttribute.cs
- InputMethodStateChangeEventArgs.cs
- BuilderPropertyEntry.cs
- ISCIIEncoding.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- Matrix3D.cs
- OutOfMemoryException.cs
- UnmanagedHandle.cs
- DataSourceCacheDurationConverter.cs
- PanelStyle.cs
- NullableConverter.cs
- ResourceExpression.cs
- PageHandlerFactory.cs
- ObjectHandle.cs
- CodeDOMProvider.cs
- CompiledQueryCacheKey.cs
- InstancePersistence.cs