Equals definisce una relazione di equivalenza su un tipo Foo se e solo se, per ogni istanze non nulle x, y e z di Foo abbiamo:
- x.Equals(x) è true;
- se x.Equals(y) è true, anche y.Equals(x) è true;
- se x.Equals(y) && y.Equals(z) è true, anche x.Equals(z) è true
Scrivete un'implementazione migliore (cioè che ritorni correttamente Fuzzy.True per più tipi; per questo il tipo di ritorno è Fuzzy e non bool) per il metodo IsEqualsEquivalence, rispetto a questa banale:
public static Fuzzy IsEqualsEquivalence(Type t)
{
return Fuzzy.Maybe;
}
dove Fuzzy è:
public enum Fuzzy
{
False = -1,
Maybe,
True
}
Tempo: tutta la settimana.