C#やVB.NETではオブジェクトのCloneを行うと参照のみがコピー(シャローコピー)される。 シャローコピーは、値を変更するとコピー元のデータも変更されてしまうので、なにかと都合がよくないことが多い。 オブジェクトのバックアップを取りたいような場合は値そのものをコピー(ディープコピー)するように実装しなければならない。 最も楽な方法は、オブジェクトをシリアライズし、それを別オブジェクトにデシリアライズする方法。 面倒くさがり屋さんは、とりあえずSerializableAttribute属性つけてコピりましょってゆー(^ω^;) 以下、C#によるサンプル。 using System; using System.IO; using System.Collections.Generic; using System.Runtime.Serialization.Formatters.Binary