Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / MS / Internal / ComponentModel / PropertyKey.cs / 1 / PropertyKey.cs
namespace MS.Internal.ComponentModel { using System; using System.Collections.Generic; using System.Windows; // This structure is used as a key in a dictionary of property key -> property descriptor // The key is unique based on the type the property is attached to, and the property // itself. internal struct PropertyKey : IEquatable{ internal PropertyKey(Type attachedType, DependencyProperty prop) { DependencyProperty = prop; AttachedType = attachedType; _hashCode = AttachedType.GetHashCode() ^ DependencyProperty.GetHashCode(); } public override int GetHashCode() { return _hashCode; } public override bool Equals(object obj) { return Equals((PropertyKey)obj); } public bool Equals(PropertyKey key) { return (key.AttachedType == AttachedType && key.DependencyProperty == DependencyProperty); } public static bool operator ==(PropertyKey key1, PropertyKey key2) { return (key1.AttachedType == key2.AttachedType && key1.DependencyProperty == key2.DependencyProperty); } public static bool operator !=(PropertyKey key1, PropertyKey key2) { return (key1.AttachedType != key2.AttachedType || key1.DependencyProperty != key2.DependencyProperty); } internal DependencyProperty DependencyProperty; internal Type AttachedType; private int _hashCode; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace MS.Internal.ComponentModel { using System; using System.Collections.Generic; using System.Windows; // This structure is used as a key in a dictionary of property key -> property descriptor // The key is unique based on the type the property is attached to, and the property // itself. internal struct PropertyKey : IEquatable { internal PropertyKey(Type attachedType, DependencyProperty prop) { DependencyProperty = prop; AttachedType = attachedType; _hashCode = AttachedType.GetHashCode() ^ DependencyProperty.GetHashCode(); } public override int GetHashCode() { return _hashCode; } public override bool Equals(object obj) { return Equals((PropertyKey)obj); } public bool Equals(PropertyKey key) { return (key.AttachedType == AttachedType && key.DependencyProperty == DependencyProperty); } public static bool operator ==(PropertyKey key1, PropertyKey key2) { return (key1.AttachedType == key2.AttachedType && key1.DependencyProperty == key2.DependencyProperty); } public static bool operator !=(PropertyKey key1, PropertyKey key2) { return (key1.AttachedType != key2.AttachedType || key1.DependencyProperty != key2.DependencyProperty); } internal DependencyProperty DependencyProperty; internal Type AttachedType; private int _hashCode; } } // 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
- ManagedIStream.cs
- DrawingVisualDrawingContext.cs
- JsonUriDataContract.cs
- CodeDomSerializerException.cs
- ServiceModelExtensionElement.cs
- DbConnectionHelper.cs
- StandardBindingOptionalReliableSessionElement.cs
- HierarchicalDataBoundControl.cs
- DataGridViewToolTip.cs
- XmlSchemaComplexContent.cs
- MatrixUtil.cs
- PingOptions.cs
- DisplayNameAttribute.cs
- ManagedWndProcTracker.cs
- XmlSerializerAssemblyAttribute.cs
- CallTemplateAction.cs
- MemoryMappedFileSecurity.cs
- ReservationNotFoundException.cs
- pingexception.cs
- propertyentry.cs
- ProvideValueServiceProvider.cs
- ModuleConfigurationInfo.cs
- PropertyMetadata.cs
- ProxyGenerator.cs
- NullReferenceException.cs
- UserNamePasswordValidator.cs
- ScriptBehaviorDescriptor.cs
- SendMailErrorEventArgs.cs
- BrowserCapabilitiesCodeGenerator.cs
- WebProxyScriptElement.cs
- StylusPlugin.cs
- TempFiles.cs
- GeometryModel3D.cs
- OutputCacheSection.cs
- RelatedImageListAttribute.cs
- HttpServerVarsCollection.cs
- HtmlAnchor.cs
- BaseCodePageEncoding.cs
- ToolboxSnapDragDropEventArgs.cs
- SemanticResultValue.cs
- rsa.cs
- HwndHostAutomationPeer.cs
- Decimal.cs
- FactoryGenerator.cs
- QueryCacheManager.cs
- ProxyManager.cs
- ActivityExecutorOperation.cs
- Control.cs
- ComponentSerializationService.cs
- NumberFunctions.cs
- ObjectMaterializedEventArgs.cs
- PropVariant.cs
- BindingElement.cs
- ThreadSafeList.cs
- DoubleIndependentAnimationStorage.cs
- XamlReader.cs
- ToolStripDropDownClosedEventArgs.cs
- Util.cs
- CollectionViewProxy.cs
- XmlSerializationGeneratedCode.cs
- InternalsVisibleToAttribute.cs
- PerSessionInstanceContextProvider.cs
- Section.cs
- GridItemPattern.cs
- DesigntimeLicenseContext.cs
- QuestionEventArgs.cs
- AutomationFocusChangedEventArgs.cs
- StatusStrip.cs
- Button.cs
- DetailsViewRowCollection.cs
- MenuEventArgs.cs
- GenerateScriptTypeAttribute.cs
- PingOptions.cs
- filewebresponse.cs
- Section.cs
- ComponentResourceManager.cs
- HitTestResult.cs
- SmiTypedGetterSetter.cs
- EventsTab.cs
- XmlAttributes.cs
- HtmlEmptyTagControlBuilder.cs
- CompoundFileReference.cs
- CodeAttachEventStatement.cs
- AudioBase.cs
- TextEditorCharacters.cs
- _ConnectStream.cs
- Lease.cs
- WindowHelperService.cs
- _NtlmClient.cs
- SessionStateContainer.cs
- ThicknessAnimation.cs
- ExtendedProtectionPolicy.cs
- DataControlFieldCell.cs
- XmlSchemaAppInfo.cs
- UIPropertyMetadata.cs
- BaseTemplateCodeDomTreeGenerator.cs
- Italic.cs
- HashFinalRequest.cs
- AppDomainManager.cs
- TypedTableGenerator.cs