我在 C# 中有一个类的函数,可以将一个对象与另一个对象进行比较。或多或少是一个 Equals 函数,但添加了一些代码。我的对象有很多变量,我想比较每个变量,如果有不同,请将它们添加到数据表中。现在我的函数看起来像:
public bool compareSysInfo(SystemInfo expected, SystemInfo comp)
{
ComparePopup popup = new ComparePopup();
bool finalResult = true;//initial assumption that they are equal
//compares branding
if (expected.branding != comp.branding)
{
finalResult = false;
popup.addDataToTable("Branding", comp.getBranding() + "", expected.getBranding() + "");
}
//compares pro #
if (expected.getPro() != comp.getPro())
{
finalResult = false;
popup.addDataToTable("Pro Number", comp.getPro() + "", expected.getPro() + "");
}
对于所有变量,它都会继续这样。我想避免过多的 if 语句,有没有办法创建抽象方法并使用循环?我调查了代表,但我不确定如何在这种情况下使用它们。也许我正在解决这个错误,应该做一些完全不同的事情,比如将它们添加到集合中,然后只使用 for 循环来比较对象。我觉得我错过了一些明显的东西。我知道任何有这样重复代码的地方你都可以更好地实现,只是我不知道怎么做。这里的任何建议都会很棒。谢谢您的帮助。