Comparer クラスの Compare 関数のドキュメントには、次のように書かれています。
a が IComparable を実装している場合、a. CompareTo (b) が返されます。それ以外の場合、b が IComparable を実装している場合は、b の否定された結果。CompareTo (a) が返されます。
しかし、私がそれをテストすると、最初の入力が Icomparable を実装することを要求するように見えます。次のコードではエラーが発生します。
class Program
{
static void Main(string[] args)
{
Test t1 = new Test();
Test2 t2 = new Test2();
int i = Comparer.Default.Compare(t1,t2);
}
}
class Test
{
}
class Test2 : IComparable
{
public int CompareTo(object obj)
{
return 0;
}
}
それは私だけですか、それともドキュメントが間違っていますか?