Je suis en train de passer outre Equals afin qu'il compare basé sur une variable ID:prioritaire opérateur =
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;
}
}
Cependant, lorsque je teste ce de la manière suivante il retourne faux:
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();
}
Qu'est-ce que c'est le problème? Lorsque j'essaie de passer à travers, mon override n'est même pas entré.
utilise l'opérateur == la même chose que d'appeler i1.Equals (i2); J'aurais dit non mais vous apprenez quelque chose de nouveau tous les jours ... – Rob
@Rob ils ne sont pas les mêmes, c'est le problème. :) –