我試圖重載equals,這樣它比較基於變量ID:壓倒一切的平等經營
public class OrderID
{
public string ID { get; private set; }
public OrderID(string id)
{
ID = id;
}
public override bool Equals(object obj)
{
if (obj is OrderID)
{
return ((OrderID)obj).ID == ID;
}
else return false;
}
public override string ToString()
{
return ID;
}
}
但是當我測試這個以下列方式返回false:
static void Main(string[] args)
{
OrderID i1 = new OrderID("Hello");
OrderID i2 = new OrderID("Hello");
bool test = i1 == i2;
Console.WriteLine(test.ToString());
Console.ReadKey();
}
什麼問題是什麼?當我試圖通過它,我的重寫甚至沒有進入。
使用==操作符與調用i1.Equals(i2)相同;我會說不,但你每天都會學到新的東西...... – Rob 2010-12-07 02:06:10