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)); }