我在 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);
谢谢!