public void WeakReferences_Are_Equal() { var testObject = new object(); var wRef1 = new WeakReference(testObject); var wRef2 = new WeakReference(testObject); var comparer = new WeakReferenceComparer(); Assert.AreNotEqual(wRef1, wRef2); Assert.IsFalse(wRef1.Equals(wRef2)); Assert.IsFalse(wRef1 == wRef2); Assert.IsTrue(comparer.Equals(wRef1, wRef2)); Assert.IsFalse(comparer.Equals(null, wRef2)); Assert.IsFalse(comparer.Equals(wRef1, null)); }
public void TestWeakReferenceInHashSet() { var foo = new Foo(); var fooWeak1 = new WeakReference <Foo>(foo); var fooWeak2 = new WeakReference <Foo>(foo); Assert.AreNotEqual(fooWeak1, fooWeak2); Assert.AreNotEqual(fooWeak1.GetHashCode(), fooWeak2.GetHashCode()); Assert.IsFalse(fooWeak1.Equals(fooWeak2)); var set = new HashSet <WeakReference <Foo> >(); set.Add(fooWeak1); set.Add(fooWeak2); Assert.AreEqual(2, set.Count); }
public bool Equals(WeakReference <T> x, WeakReference <T> y) { //Debug.Log("Equals"); return(x.Equals(y)); }
public override bool Equals(object o) { return(_wrapped.Equals(o)); }