C#で何を使用すればよいのかよくわからない-理論的にはどちらも同じようにする必要がありますが、どちらも簡単に監視できると思います。または、私が考慮に入れなければならない別の可能性はありますか?
C++ではコピーコンストラクタを使用します。しかし、C#で私はそれらの多くを聞いたことがありません(それらはパラメーターとしてselfを持つ単なる俳優であり、すべてのデータを再割り当てする必要があります)
また、コピークターはすべてのオブジェクトをディープコピーする必要がありますか、それとも再割り当てするだけですか?
このシナリオの「ベストプラクティス」とは何ですか。
コピーコンストラクタを使用します。理由は次のとおりです。
IClonable
セマンティクスがあいまいです。マイクロソフトは、クローンを浅いコピーにするか深いコピーにするかを指定していません。
各コピーに独自の一意のIDを付与したり、一部のフィールドのみをコピーして他のフィールドはコピーしないなど、コピーコンストラクターでカスタム動作を指定できます。
さらに読む
コピーコンストラクタとC#のクローン
関連するクラスがポリモーフィックである場合(適切なランタイム型のインスタンスが作成されるように)、cloneメソッドを使用します。
そうでなければ、それは私の意見では好みの問題です。
ユーザーがダイアログで[OK]を押したときのレコードの変更に関しては、データベースレコードインスタンスと比較する必要があります。元のHTTP getの複製に依存することはできません。誰かがあなたの前にレコードを変更して、競合状態になる可能性があるからです。
これが当てはまらない場合は、別のスレッドでカバーされているので、役立つことを願っています。 https://stackoverflow.com/questions/78536/deep-cloning-objects