DOBON.NET DOBON.NETプログラミング掲示板過去ログ

クラスをコピーする方法(VB.NET)

環境/言語:[VB.NET]
分類:[.NET]

VB.NETで、クラスのコピー(インスタンスのコピーという方が
正しいのでしょうか)を高速に行う良い方法はないでしょうか。

今は、メンバ変数のコピーをひとつひとつ行うプロシージャを
作って実行しています。メンバ変数として、配列や構造体もあ
るので、時間がかかっているようです。
次のようにやっていて、不便だなぁと思っています。
何か高速に行う方法はないでしょうか。

よろしくお願いします。

public class abc
public a,b,c as integer
end class

public a as abc
public b as abc

copyabc(a,b)

public sub copyabc(byref from as abc, byref to as abc)
to.a = from.a
to.b = from.b
to.c = from.c
ここにすべてのメンバ変数のコピーを書いている。
  構造体の配列のコピーは、ループを書くなどしている。
end sub
■No6297に返信(やくさんの記事)

.NETにはディープコピーはないようなので、
一旦memberwiseCloneを呼んで簡易コピーを受け取った上で、
単純な値型ではないメンバに関してはコードでがんばるしかないと思います。
■No6299に返信(こど。さんの記事)
> ■No6297に返信(やくさんの記事)
>
> .NETにはディープコピーはないようなので、
> 一旦memberwiseCloneを呼んで簡易コピーを受け取った上で、
> 単純な値型ではないメンバに関してはコードでがんばるしかないと思います。

こど。さんありがとうございます。
残念ですが、簡単な方法はないようですね。
memberwiseCloneも知らなかったので、こちらは調べて活用してみます。

DOBON.NET | プログラミング道 | プログラミング掲示板