我试图重载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