こんにちは。
上手くお伝えできるか不安ですが、ご相談させてください。
personインスタンスのバックアップ(bkPerson)を取得したいです。
personに何か例外があった場合に、personをbkPersonで復元したいためです。
ただし条件があり、例えbkPersonから復元したpersonであったとしても、
personのインスタンスは、復元前と同じインスタンスで在りたいのです。
理由は、personインスタンスは、他のインスタンスから参照されているので、
復元時にpersonインスタンスが変わってしまうと、他のインスタンスからの参照が出来なくなるからです。
また、Personクラスにはたくさんのメンバが存在していることを想定しているので、
クラス内の各メンバを1つ1つ代入、、という処理も、できれば避けたいと思っています。
もしかすると、「メモリのバックアップ」という言い方のほうが適切かもしれません。
上記方法についてご存じの方がいらっしゃいましたらご教授お願いいたしますm(_ _)m
以下、当方の環境です。
Windows 10 64bit
.NET Core 3.0
VisualStudio 2019 v16.9.2
C#
1 class Program{ 2 static void Main(string[] args){ 3 Person person = new Person(); 4 5 Person bkPerson = person; // インスタンスのバックアップを取りたい。 6 7 try{ 8 person.Name = "hogehoge"; 9 }catch{ 10 person = bkPerson; // バックアップから復元したい。 11 } 12 } 13 } 14 class Person 15 { 16 // ★この例ではNameプロパティのみですが、もっとたくさんの 17 // メンバがあることを想定しています。 18 public String Name { get; set; } = "Hoge"; 19 }
回答4件
あなたの回答
tips
プレビュー