我试图理解C#中的CompareTo方法。我明白,如果两个变量都相同,我得到0.但是+1和-1的部分让我感到困惑......有人可以更直观地向我解释一下吗? (是的,我阅读了文档)
答案 0 :(得分:4)
您说您已阅读documentation,因此很难猜测 会让您感到困惑。
a.CompareTo(b)
应该返回
a
小于b
,则a
等于b
和a
大于b
也许一些例子可以提供帮助:
5.CompareTo(10) // => -1, because 5 < 10
5.CompareTo(5) // => 0, because 5 == 5
5.CompareTo(3) // => 1, because 5 > 3
我说&#34;应该返回&#34;,因为&#34; less&#34;,&#34;等于&#34;的语义。并且&#34;更大&#34;意思取决于具体类型及其CompareTo
的实施情况。返回值是一种约定,当您实现自己的CompareTo
时,应该应用它们以免混淆您的类型的客户。
答案 1 :(得分:1)
CompareTo是多种不同方法的通用名称,具体取决于所比较的数据类型。因此,取决于上下文,&lt; 0和&gt; 0结果可能意味着稍微不同的事物。通常,&lt; 0表示实例小于比较对象或在列表中位于其之前。 &gt; 0意味着大于比较对象或在列表中跟随它。
答案 2 :(得分:0)
将当前实例与同一类型的另一个对象进行比较 返回一个指示当前实例是否的整数 在排序顺序中的前面,后面或出现在相同的位置 另一个对象。
示例:
A.CompareTo(A); // Must return zero.
A.CompareTo(B) // Returns a value other than zero, then B.CompareTo(A) should return the opposite.
A.CompareTo(B) // If returns a value x not equal to zero, and B.CompareTo(C) returns a value y of the same sign as x, then A.CompareTo(C) must return the value of the same as x and y.
全部来自官方文档here。