1

これまでのところ、リフレクションは、2つのオブジェクトが同じであるかどうかを動的にチェックする唯一の方法のようです。これを行うには、オブジェクトのメンバーを反復処理し、どのメンバーに異なる値が含まれているかを確認します。ただし、調査によると、このように使用すると、パフォーマンスの反映が悪くなることがわかっています。

誰かがここで、私がしなければならないことに対して反省が本当に良い選択ではないかどうかを確認できるなら、おそらく別の方法がありますか?

どのルートを使用する場合でも、動的なソリューションが必要であることに注意してください。これは、Equalsをオーバーライドしてから、各プロパティを1つずつ比較しないことを意味します。動的であれば、すべてのタイプで機能する1つのメソッドを記述できます。

4

1 に答える 1

2

リフレクションはそれを行うための良い方法です。独自のオブジェクトハッシュメソッドを作成しています。比較する必要のあるすべてのプロパティを調べ、それからハッシュを作成するハッシュメソッドを作成する場合、それはかなり高速な比較になるはずです。そのためにもおそらくリフレクションを使用する必要があります。object.GetHashCode()のオーバーライドのようなものですが、どの参照が参照されているかは考慮せず、値のみを考慮します。

何かを試してみて、後でパフォーマンスが問題になるかどうかを判断します。

于 2012-06-22T14:22:51.033 に答える