PropertyKey.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK