voglio fare qualcosa di simile:Posso utilizzare l'operatore di coalesce su numeri interi per concatenare CompareTo?
public override int CompareTo (Foo rhs)
{
return Bar.CompareTo(rhs.Bar) ??
Baz.CompareTo(rhs.Baz) ??
Fuz.CompareTo(rhs.Fuz) ?? 0;
}
Questo non funziona come scritto; c'è qualche soluzione minima per farlo funzionare? Fondamentalmente voglio 0 a catena fino a non-zero (o alla fine della catena).
Non conosco la risposta alla tua domanda, ma se tre valori possono essere utilizzati per determinare il valore di ritorno, si potrebbe prendere in considerazione riprogettare la vostra classe. –
@DJ 'CompareTo' è relativo all'ordinamento; questo è abbastanza comune, in realtà - per esempio, ordina per cognome - se è lo stesso, quindi ordina per FirstName, quindi se è ancora uguale, ordina per qualche identificatore univoco (id del database, per esempio). –
@Marc Interessante, non sono stato esposto a questo prima. Vedo che CompareTo fa parte della classe IComparable. Dovrò leggere di più per avere una prospettiva. Grazie –