我真的很讨厌使用IComparer——直到今天,在使用 .Net 多年之后,我仍然经常被那些 1 和 -1 弄糊涂。
我可以以某种方式用一些不言自明的名称替换比较结果值,而不必在每次比较调用后将输出整数转换为其他值吗?
我试图定义一个这样的枚举:
public enum ComparerResult
{
ALessThanB = -1,
Equal = 0,
AGreaterThanB = 1
}
if(comparer.Compare(a, b) == ComparerResult.ALessThanB)
但这当然不会在没有演员表的情况下编译。
这当然也适用于IComparable.CompareTo。
谢谢你的想法