public int CompareTo(Type other) { // Make sure that Pointer parameters are sorted last to avoid bug [#1098]. // The rest of the comparisons help maintain a stable order (useful for source control). // Note that CompareTo is stricter than Equals and that there is code in // DelegateCollection.Add that depends on this fact. int result = this.CurrentType.CompareTo(other.CurrentType); if (result == 0) { result = Pointer.CompareTo(other.Pointer); // Must come after array/ref, see issue [#1098] } if (result == 0) { result = Reference.CompareTo(other.Reference); } if (result == 0) { result = Array.CompareTo(other.Array); } // Note: CLS-compliance and element counts // are used for comparison calculations, in order // to maintain a stable sorting order, even though // they are not used in equality calculations. if (result == 0) { result = CLSCompliant.CompareTo(other.CLSCompliant); } if (result == 0) { result = ElementCount.CompareTo(other.ElementCount); } return(result); }
public int CompareTo(Type other) { // Make sure that Pointer parameters are sorted last to avoid bug [#1098]. // The rest of the comparisons are not important, but they are there to // guarantee a stable order between program executions. int result = this.CurrentType.CompareTo(other.CurrentType); if (result == 0) { result = Pointer.CompareTo(other.Pointer); } if (result == 0) { result = Reference.CompareTo(other.Reference); } if (result == 0) { result = Array.CompareTo(other.Array); } if (result == 0) { result = CLSCompliant.CompareTo(other.CLSCompliant); } if (result == 0) { result = ElementCount.CompareTo(other.ElementCount); } return(result); }