// // This file contains the C# code from Program 5.1 of // "Data Structures and Algorithms // with Object-Oriented Design Patterns in C#" // by Bruno R. Preiss. // // Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng. All rights reserved. // // http://www.brpreiss.com/books/opus6/programs/pgm05_01.txt // public abstract class ComparableObject : IComparable { public abstract int CompareTo(Object obj); private int Compare(object obj) { if (GetType() == obj.GetType()) return CompareTo(obj); else return GetType().FullName.CompareTo( obj.GetType().FullName); } public override bool Equals(object obj) { return Compare(obj) == 0; } // ... }