我在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);
謝謝!
怎麼樣發佈的錯誤? – shriek
你得到哪個編譯器錯誤? – benestar
「編譯錯誤」與「不返回true」不完全相同。這是什麼?假,還是編譯錯誤? – mpen