我需要在基类中编写一个通用方法,该方法接受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