System.ComponentModel.WeakHashtable.WeakKeyComparer.IEqualityComparer C# (CSharp) Method

IEqualityComparer() private method

private IEqualityComparer ( Object x, Object y ) : bool
x Object
y Object
return bool
            bool IEqualityComparer.Equals(Object x, Object y)
            {
                if (x.GetHashCode() == y.GetHashCode())
                {
                    WeakReference wX = x as WeakReference;
                    WeakReference wY = y as WeakReference;

                    if (wX != null)
                    {
                        if (!wX.IsAlive)
                        {
                            return false;
                        }
                        x = wX.Target;
                    }

                    if (wY != null)
                    {
                        if (!wY.IsAlive)
                        {
                            return false;
                        }
                        y = wY.Target;
                    }

                    return object.ReferenceEquals(x, y);
                }

                return false;
            }

Same methods

WeakHashtable.WeakKeyComparer::IEqualityComparer ( Object obj ) : int
WeakHashtable.WeakKeyComparer