Мне очень нравится работать с IComparer - по сей день, после многих лет работы с .Net, я все равно регулярно путаю эти 1 и -1.Работа с IComparable.Compare без магических чисел
Могу ли я каким-то образом заменить Compare результирующие значения с некоторыми самообъясняющими названиями без отливать вывода целых чисел на что-то еще после каждого Compare звонка?
Я попытался определить перечисление как это:
public enum ComparerResult
{
ALessThanB = -1,
Equal = 0,
AGreaterThanB = 1
}
if(comparer.Compare(a, b) == ComparerResult.ALessThanB)
Но это, конечно, не будет компилироваться без броска.
Это, конечно же, относится к IComparable.CompareTo.
Спасибо за ваши идеи
Это также хорошо, потому что возвращаемое значение необязательно должно быть равным -1, 0 или 1. Оно должно быть меньше нуля, нуля или больше нуля. – Reddog
@ Реддог, на самом деле, да, я просто проверил спецификацию для метода, и он не гарантирует, что он вернет -1 или 1 конкретно. –