Exemple #1
0
        public void CallingMethodThroughIComparableInterfaceInvokesImplementingMethod()
        {
            MyEquatable a = new MyEquatable(), b = new MyEquatable();

            a.result = true;
            Assert.True(((IEquatable <MyEquatable>)a).Equals(b));
            Assert.AreStrictEqual(b, a.other);
            a.result = false;
            Assert.False(((IEquatable <MyEquatable>)a).Equals(b));

            a.result = true;
            Assert.True(((IEquatable <MyEquatable>)a).Equals(null));
            Assert.AreStrictEqual(null, a.other);
            a.result = false;
            Assert.False(((IEquatable <MyEquatable>)a).Equals(null));

            a.result = true;
            Assert.True(a.Equals(b));
            Assert.AreStrictEqual(b, a.other);
            a.result = false;
            Assert.False(a.Equals(b));

            a.result = true;
            Assert.True(a.Equals(null));
            Assert.AreStrictEqual(null, a.other);
            a.result = false;
            Assert.False(a.Equals(null));
        }
 protected bool Equals(MyEquatable <T> other)
 {
     return(this.Equals(other as T));
 }