public static void ReferenceEquals() { var e1 = new EOverrider(7); var e2 = new EOverrider(8); EOverrider.s_EqualsCalled = false; Assert.True(Equals(e1, e1)); Assert.False(EOverrider.s_EqualsCalled); // ReferenceEquals should not call Equals EOverrider.s_EqualsCalled = false; Assert.False(ReferenceEquals(e1, e2)); Assert.False(EOverrider.s_EqualsCalled); EOverrider.s_EqualsCalled = false; Assert.True(ReferenceEquals(e1, e1)); Assert.False(EOverrider.s_EqualsCalled); EOverrider.s_EqualsCalled = false; Assert.True(ReferenceEquals(e1, e1)); Assert.False(EOverrider.s_EqualsCalled); EOverrider.s_EqualsCalled = false; Assert.False(ReferenceEquals(e1, null)); Assert.False(EOverrider.s_EqualsCalled); EOverrider.s_EqualsCalled = false; Assert.False(ReferenceEquals(null, e1)); Assert.False(EOverrider.s_EqualsCalled); }
public override bool Equals(object obj) { s_EqualsCalled = true; EOverrider eo = obj as EOverrider; if (eo == null) { return(false); } return(eo.X == this.X); }
public static void TestEqualsAndHashCode() { object o1 = new object(); int h1 = o1.GetHashCode(); int h2 = o1.GetHashCode(); Assert.Equal(h1, h2); bool b; b = o1.Equals(o1); Assert.True(b); b = o1.Equals(null); Assert.False(b); object o2 = new object(); b = o1.Equals(o2); Assert.False(b); b = Object.Equals(o1, o1); Assert.True(b); b = Object.Equals(null, null); Assert.True(b); b = Object.Equals(o1, null); Assert.False(b); b = Object.Equals(null, o1); Assert.False(b); b = Object.Equals(o1, o2); Assert.False(b); EOverrider e1 = new EOverrider(7); EOverrider e2 = new EOverrider(8); EOverrider.s_EqualsCalled = false; b = Object.Equals(e1, e2); Assert.True(EOverrider.s_EqualsCalled); Assert.False(b); EOverrider.s_EqualsCalled = false; b = Object.ReferenceEquals(e1, e2); Assert.False(EOverrider.s_EqualsCalled); Assert.False(b); EOverrider.s_EqualsCalled = false; b = Object.ReferenceEquals(e1, e1); Assert.False(EOverrider.s_EqualsCalled); Assert.True(b); EOverrider.s_EqualsCalled = false; b = Object.ReferenceEquals(e1, e1); Assert.False(EOverrider.s_EqualsCalled); Assert.True(b); EOverrider.s_EqualsCalled = false; b = Object.ReferenceEquals(e1, null); Assert.False(EOverrider.s_EqualsCalled); Assert.False(b); EOverrider.s_EqualsCalled = false; b = Object.ReferenceEquals(null, e1); Assert.False(EOverrider.s_EqualsCalled); Assert.False(b); }