/// <summary> /// Compares the current object with another object of the same type. /// </summary> /// <param name="other">An object to compare with this object.</param> /// <returns>A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the <paramref name="other"/> parameter.Zero This object is equal to <paramref name="other"/>. Greater than zero This object is greater than <paramref name="other"/>.</returns> public int CompareTo(StoreStatus <TStatus> other) { if (other == null) { return(1); } if (this.isEmpty) { if (other.isEmpty) { return(0); } return(-1); } if (other.isEmpty) { return(1); } return(this.Status.CompareTo(other.Status)); }