我需要在基類中編寫一個通用方法,該方法接受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()
方法將接受的DataTypeOne
2個實例或DataTypeTwo
2個實例。
我的猜測是我需要使用反射?如果可以更易讀/簡潔,我可以使用LINQ。
編輯: 我想在基類中實現此方法的原因是因爲項目的限制。有大量的開發人員在派生類上工作。通過在基類中實現這一點,我想讓他們少擔心一件事。
爲什麼不重寫Object.Equals? – Paco 2009-04-28 14:05:54
爲什麼你需要在基類中實現AreEqual(以及爲什麼沒有泛型)?如果AreEqual是抽象的,DataTypeOne和DataTypeTwo實現AreEqual,那麼這是一個更清晰的解決方案。簡而言之:常見的AreEqual方法的原因是什麼? – boj 2009-04-28 14:07:52