更新 : 2007 年 11 月 C# には、2 種類の等価があります。1 つは参照の等価で、もう 1 つは値の等価です。値が等価であるとは、一般的に理解されている意味での等価で、2 つのオブジェクトが同じ値を含んでいることを意味します。たとえば、2 という値を持つ 2 つの整数は値が等価です。一方、参照が等価であるとは、比較する 2 つのオブジェクトが存在しないことを意味します。この場合は、オブジェクトの代わりに、共に同じオブジェクトを参照する 2 つのオブジェクト参照が存在します。次の例に示すように、これは簡単な代入によって生じます。 System.Object a = new System.Object(); System.Object b = a; System.Object.ReferenceEquals(a, b); //returns true このコードでは、オブジェクトは
![Equals() と演算子 == のオーバーロードに関するガイドライン (C# プログラミング ガイド)](https://cdn-ak-scissors.b.st-hatena.com/image/square/d6e4cb632c7025e9f5e05fd314fbf6dcd6144e8d/height=288;version=1;width=512/https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fmedia%2Fopen-graph-image.png)