c#でList<MyClass>のディープコピーができないのですがどうすればいいのでしょうか?
c#
1// 自前で用意したclass 2class MyClass { 3 public int val {get; set;} 4 public string text {get; set;} 5} 6 7// MyClassのListをプロパティに持つclass 8class HogeClass { 9 public List<MyClass> mycl {get; set;} 10 11 public void deepcopy(HogeClass mc) { 12 this.mycl = new List<MyClass>(mc.mycl); 13 } 14} 15 16public partial class Form_main : Form { 17 public main(){ 18 // MyClassのListを作る 19 List<MyClass> mclist = new List<MyClass>(); 20 mclist.Add(new MyClass(){val = 1, text = "aaa"}); 21 mclist.Add(new MyClass(){val = 2, text = "bbb"}); 22 mclist.Add(new MyClass(){val = 3, text = "ccc"}); 23 24 // インスタンスhcAを作成 25 HogeClass hcA = new HogeClass(); 26 hcA.mycl = mclist; 27 28 // インスタンスhcBを作成 29 HogeClass hcB = new HogeClass(); 30 31 // ★ここでhcB.myclにhcA.myclのコピーをしたい 32 hcB.deepcopy(hcA); // ←これだと参照渡しになってしまいます 33 } 34}
この場合どのようなコードにすると値渡しでコピーができるのでしょうか?
どうぞよろしくお願い致します。
Windows10 + VisualStudio 2015
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/06/30 08:38