私はIComparerを扱うのが本当に嫌いです。何年も .Net を使ってきた今でも、1 と -1 でよく混乱します。
Compare呼び出しのたびに出力整数を別のものにキャストすることなく、 Compare結果値を自明の名前に置き換えることはできますか?
次のような列挙型を定義しようとしました:
public enum ComparerResult
{
ALessThanB = -1,
Equal = 0,
AGreaterThanB = 1
}
if(comparer.Compare(a, b) == ComparerResult.ALessThanB)
しかし、もちろん、キャストなしではコンパイルできません。
もちろん、これはIComparable.CompareToにも当てはまります。
アイデアをありがとう