ただいま修行中...

ソフトウェア開発において、勉強中で悪戦苦闘の日々

memberwiseCloneについて

2009-01-20 21:39:12 | C#
今日、後輩のコードレビューをしていると、MemberwiseCloneを使用して、コピーをしている部分がありました。

return this.MemberwiseClone()と書いてあるので、参照型の場合に正しい結果が得られないといいました。

しかし、テストコード上では正しく動作しています。

ヘルプを調べるとわかりますが、以下MSDNの抜粋。

MemberwiseClone メソッドは、新しいオブジェクトを作成し、現在のオブジェクトの非静的フィールドをその新しいオブジェクトにコピーすることによって、簡易コピーを作成します。フィールドが値型の場合、そのフィールドはビット単位でコピーされます。フィールドが参照型の場合、参照はコピーされますが、参照先オブジェクトはコピーされないため、元のオブジェクトとその複製は同じオブジェクトを参照します。

テストコードを書いても、オブジェクトを参照するので、テストコード上では正しく動作します。

こういったものはコードレビューをしないと見つからないと思いました。

MemberwiseCloneを使用するときには注意をしなくてはならないと思いました。


最新の画像もっと見る

コメントを投稿