Мне нужно написать общий метод в базовом классе, который принимал бы 2 объекта в качестве параметров и сравнивал их для равенства.Сравнение 2 пользовательских объектов - C#
Пример:
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;
}
AreEqual()
Метод будет принимать 2 экземпляра DataTypeOne
или 2 экземпляра DataTypeTwo
.
Я думаю, что мне нужно использовать Reflection? Я могу использовать LINQ, если он может быть более читаемым/сжатым.
EDIT: Причина, по которой я хотел бы реализовать этот метод в базовом классе, связана с ограничениями проекта. На производных классах работает большое количество разработчиков. Внедряя это в базовый класс, я стараюсь, чтобы у них было меньше дел, о которых они могли беспокоиться.
Почему вы не переопределяете Object.Equals? – Paco
Зачем вам нужно реализовать AreEqual в базовом классе (и почему без дженериков)? Если AreEqual является абстрактным, а DataTypeOne и DataTypeTwo реализует AreEqual, то это более чистое решение. Короче говоря: в чем причина общего метода AreEqual? – boj