あるオブジェクトを別のオブジェクトと比較する 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 ループを使用してオブジェクトを比較するなど、まったく異なることを行う必要があります。明らかな何かが欠けているように感じます。このような反復的なコードがあれば、より適切に実装できる場所を知っていますが、方法がわからないだけです。ここでのアドバイスは素晴らしいでしょう。助けてくれてありがとう。