Potrzebuję napisać ogólnej metody w klasie bazowej, która zaakceptowałaby 2 obiekty jako parametry i porównuje je dla równości.Porównywanie 2 niestandardowych obiektów - C#
Np
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;
}
Sposób AreEqual()
przyjmie 2 przypadki DataTypeOne
lub 2 przypadki DataTypeTwo
.
Zgaduję, że muszę użyć Odbicia? Mogę użyć LINQ, jeśli może być bardziej czytelny/zwięzły.
EDYTOWANIE: Powodem, dla którego chciałbym wdrożyć tę metodę w klasie bazowej, jest ograniczenie projektu. Na klasach pochodnych pracuje duża liczba programistów. Wdrażając to w klasie bazowej, staram się mieć 1 mniej rzeczy, o które się martwią.
Dlaczego nie zastąpisz Object.Equals? – Paco
Dlaczego trzeba wdrożyć AreEqual w klasie bazowej (i dlaczego bez generycznych)? Jeśli AreEqual jest abstrakcyjne, a DataTypeOne i DataTypeTwo implementują AreEqual, to jest to bardziej przejrzyste rozwiązanie. Krótko mówiąc: jaki jest powód typowej metody AreEqual? – boj