C# でクラス B を継承するクラス A があるとします。クラス B にはチェックサムと呼ばれるプロパティがあり、実行時に呼び出されると、クラス A のインスタンスのすべてのプロパティのチェックサムを計算します (使用される特定のチェックサム アルゴリズムは重要ではなく、おそらく BCL のものです)。
重要なことに、チェックサム アルゴリズムはチェックサム プロパティを無視する必要があります。そうしないと、後で検証するときに失敗します (チェックサム値が変更されるため)。
したがって、私が見る限り、2つのオプションがあります。
1) リフレクションを使用してオブジェクトのすべてのパブリック プロパティを反復処理し、文字列に連結してチェックサムを取得します。
2) オブジェクトが単に一連の連続したメモリ アドレスであるふりをして、それをバイト配列とチェックサムとして扱います。
1 - 遅いように聞こえます 2 - チェックサム自体を表す文字列を無視する方法や、他のオブジェクトへの参照がどのように処理されるのかがわからないため、難しいように聞こえます。
これら 2 つのソリューションのどちらが優れているように聞こえる 1 よりも優れたアイデアを誰かが持っていますか?