-2

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); 

ありがとう!

4

1 に答える 1