Ich muss eine generische Methode in der Basisklasse schreiben, die 2 Objekte als Parameter akzeptiert und vergleicht sie für die Gleichheit.Vergleichen von 2 benutzerdefinierten Objekten - C#
Ex:
public abstract class BaseData
{
public bool AreEqual(object O1, object O2)
{
//Need to implement this
}
}
public class DataTypeOne : BaseData
{
public string Name;
public string Address;
}
public class DataTypeTwo : BaseData
{
public int CustId;
public string CustName;
}
Die AreEqual()
Methode 2 Instanzen von DataTypeOne
oder 2 Instanzen von DataTypeTwo
akzeptieren würde.
Ich schätze, ich brauche Reflection zu verwenden? Ich kann LINQ verwenden, wenn es besser lesbar/prägnant ist.
EDIT: Der Grund, warum ich diese Methode in der Basisklasse implementieren möchte, ist aufgrund von Projekteinschränkungen. Es gibt eine große Anzahl von Entwicklern, die an den abgeleiteten Klassen arbeiten. Indem ich dies in der Basisklasse implementiere, versuche ich, eine weniger Sache zu haben, über die sie sich Sorgen machen müssen.
Warum nicht Object.Equals außer Kraft setzen? – Paco
Warum müssen Sie AreEqual in der Basisklasse implementieren (und warum ohne Generika)? Wenn AreEqual abstrakt ist und DataTypeOne und DataTypeTwo AreEqual implementieren, ist dies eine sauberere Lösung. Kurz gesagt: Was ist der Grund für die gemeinsame AreEqual-Methode? – boj