MSDN サイトで、両方の値型オペランドが等しい場合に == 演算子が true を返すことを見てきました。
次の構造体 (私の知る限り、C# では値型と見なされます) を宣言し、== 演算子を使用したことを完全に理解するために、何らかの理由で理解できないため、次のコンパイル エラーが発生します。
p1 と p2 が明らかに等しいにもかかわらず、コンパイラがこれらのエラーを表示する理由を知っている人はいますか??
struct Point {
int m_X;
int m_Y;
}
Point p1 = new Point(10, 15);
Point p2 = new Point(10, 15);
Point p3 = p2;
bool equals = (p1 == p2); // Compile Error
bool equals = (p2 == p3); // Compile Error
bool equals = p1.Equals(p3);
bool equals = p1.Equals(p2);
ありがとう!