ひとくちに複製と言っても、単純にコピー元の値をコピー先に代入することで行う複製や、なんらかのメソッドを呼び出すことで行う複製などさまざまな方法があります。 また複製を行う機能を実装する場合も、構造体やクラスなど複数のフィールドからなる型ではすべてのフィールドを複製する必要があります。 これらの他の型を内包する複合型の場合では、内包するオブジェクトも含めて複製するか、参照のみをコピーするかといったことが考えられます。 さらに、.NET Frameworkでは型には値型と参照型の二種類が存在するため、複製の際にはそれらの違いも考慮する必要があります。 ここではオブジェクトの複製を作成する方法と、複製を作成する機能を提供するICloneableインターフェイスについて解説します。