等しい -
1- GetHashCode メソッドをオーバーライドして、型がハッシュ テーブルで正しく機能するようにします。
2- Equals メソッドの実装で例外をスローしないでください。代わりに、null 引数に対して false を返します。
3-
x.Equals(x) returns true.
x.Equals(y) returns the same value as y.Equals(x).
(x.Equals(y) && y.Equals(z)) returns true if and only if x.Equals(z) returns true.
x.Equals(y) を連続して呼び出すと、x および y によって参照されるオブジェクトが変更されない限り、同じ値が返されます。
x.Equals(null) returns false.
4- ある種のオブジェクトでは、参照の等価性ではなく、値の等価性を Equals でテストすることが望ましいです。このような Equals の実装は、2 つのオブジェクトが同じインスタンスでなくても、同じ値を持つ場合に true を返します。
例えば -
Object obj1 = new Object();
Object obj2 = new Object();
Console.WriteLine(obj1.Equals(obj2));
obj1 = obj2;
Console.WriteLine(obj1.Equals(obj2));
出力:-
False
True
比較しながら-
現在のインスタンスを同じ型の別のオブジェクトと比較し、現在のインスタンスが並べ替え順序で他のオブジェクトの前、後、または同じ位置にあるかどうかを示す整数を返します。
それは戻ります -
0 未満 - このインスタンスは、ソート順で obj より前になります。ゼロ - このインスタンスは、ソート順で obj と同じ位置に発生します。ゼロより大きい - このインスタンスは、ソート順で obj に従います。
オブジェクトがインスタンスと同じ型でない場合、ArgumentException をスローできます。
たとえば、ここにアクセスできます。
したがって、compareTo の代わりに Equals を使用することをお勧めします。