wow, what an awful example.
the key point they're not explaining here is in your CompareTo(object obj), you're supposed to return a negative value if (this) belongs before [obj], a positive number if (this) belongs after [obj], and 0 if you consider (this) and [obj] to be equal.