// // This file contains the C# code from Program 5.2 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_02.txt // public abstract class ComparableObject : IComparable { public static bool operator ==(ComparableObject c, object o) { if ((object)c == null || (object)o == null) return (object)c == (object)o; else return c.Compare(o) == 0; } public static bool operator !=(ComparableObject c, object o) { if ((object)c == null || (object)o == null) return (object)c != (object)o; else return c.Compare(o) != 0; } public static bool operator <(ComparableObject c, object o) { return c.Compare(o) < 0; } public static bool operator >(ComparableObject c, object o) { return c.Compare(o) > 0; } public static bool operator <=(ComparableObject c, object o) { return c.Compare(o) <= 0; } public static bool operator >=(ComparableObject c, object o) { return c.Compare(o) >= 0; } // ... }