Пример #1
0
        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);
        }
Пример #2
0
        public override bool Equals(object obj)
        {
            s_EqualsCalled = true;

            EOverrider eo = obj as EOverrider;

            if (eo == null)
            {
                return(false);
            }
            return(eo.X == this.X);
        }
Пример #3
0
    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);
    }