예제 #1
0
파일: UndoTests.cs 프로젝트: nathanaw/muf
        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));
        }
예제 #2
0
        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);
        }
예제 #3
0
 public bool Equals(WeakReference <T> x, WeakReference <T> y)
 {
     //Debug.Log("Equals");
     return(x.Equals(y));
 }
예제 #4
0
 public override bool Equals(object o)
 {
     return(_wrapped.Equals(o));
 }