J'ai besoin d'écrire une méthode générique dans la classe de base qui accepterait 2 objets comme paramètres et les compare pour l'égalité.Comparer 2 objets personnalisés - 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;
}
La méthode AreEqual()
accepterait 2 cas de DataTypeOne
ou 2 cas de DataTypeTwo
.
Je suppose que j'ai besoin d'utiliser Reflection? Je peux utiliser LINQ si cela peut être plus lisible/concis.
EDIT: La raison pour laquelle je voudrais implémenter cette méthode dans la classe de base est due à des restrictions de projet. Il y a un grand nombre de développeurs travaillant sur les classes dérivées. En mettant cela en œuvre dans la classe de base, j'essaie d'avoir 1 chose de moins à leur sujet.
Pourquoi ne surchargez-vous pas Object.Equals? – Paco
Pourquoi avez-vous besoin d'implémenter AreEqual dans la classe de base (et pourquoi sans génériques)? Si AreEqual est abstrait et DataTypeOne et DataTypeTwo implémente AreEqual, il s'agit d'une solution plus propre. Donc, en bref: quelle est la raison de la méthode commune AreEqual? – boj