예제 #1
0
        public void EqualsSpeedTest()
        {
            TestClass eo1Inst1 = new TestClass();
            TestClass eo1Inst3 = eo1Inst1;

            TestEditableObject eo2Inst1 = TestEditableObject.CreateInstance();
            TestEditableObject eo2Inst3 = eo2Inst1;

            eo1Inst1.ID = 1; eo1Inst1.Equals(eo1Inst3);
            eo2Inst1.ID = 1; eo2Inst1.Equals(eo2Inst3);

            long startTicks = DateTime.Now.Ticks;

            for (int i = 0; i < 100000; i++)
            {
                eo1Inst1.Equals(eo1Inst3);
            }
            Console.WriteLine(".NET: {0}", DateTime.Now.Ticks - startTicks);

            startTicks = DateTime.Now.Ticks;
            for (int i = 0; i < 100000; i++)
            {
                eo2Inst1.Equals(eo2Inst3);
            }
            Console.WriteLine("BLT: {0}", DateTime.Now.Ticks - startTicks);
        }
예제 #2
0
        public void EqualsTest()
        {
            TestClass classInst1 = new TestClass();
            TestClass classInst2 = new TestClass();

            TestStruct structInst1 = new TestStruct();
            TestStruct structInst2 = new TestStruct();

            TestEditableObject editableInst1 = TestEditableObject.CreateInstance();
            TestEditableObject editableInst2 = TestEditableObject.CreateInstance();
            TestEditableObject editableInst3 = editableInst1;

            classInst1.ID    = classInst2.ID = 1;
            structInst1.ID   = structInst2.ID = 1;
            editableInst1.ID = editableInst2.ID = 1;

            TestStruct structInst3 = structInst1;
            TestClass  classInst3  = classInst1;

            Assert.IsTrue(Equals(structInst1, structInst2));
            Assert.IsTrue(Equals(structInst1, structInst3));
            Assert.IsTrue(Equals(structInst2, structInst3));

            Assert.IsFalse(Equals(classInst1, classInst2));
            Assert.IsFalse(Equals(editableInst1, editableInst2));

            Assert.IsTrue(Equals(classInst1, classInst3));
            Assert.IsTrue(Equals(editableInst1, editableInst3));

            Assert.IsFalse(Equals(classInst2, classInst3));
            Assert.IsFalse(Equals(editableInst2, editableInst3));
        }