Necesito escribir un método genérico en la clase base que acepte 2 objetos como parámetros y los compare por igualdad.Comparando 2 objetos personalizados - 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;
}
El método AreEqual()
aceptaría 2 casos de DataTypeOne
o 2 casos de DataTypeTwo
.
Supongo que necesito usar Reflection? Puedo usar LINQ si puede ser más legible/conciso.
EDIT: La razón por la que me gustaría implementar este método en la clase base es debido a las restricciones del proyecto. Hay una gran cantidad de desarrolladores que trabajan en las clases derivadas. Al implementar esto en la clase base, estoy tratando de tener 1 cosa menos de la que preocuparse.
¿Por qué no se reemplaza Object.equals? – Paco
¿Por qué necesita implementar AreEqual en la clase base (y por qué sin genéricos)? Si AreEqual es abstracto y DataTypeOne y DataTypeTwo implementa AreEqual, esta es una solución más limpia. En resumen: ¿cuál es el motivo del método AreEqual común? – boj