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