参照型クラスをコピーしたいのですが、
VBではできないのでしょうか?
cloneメゾットというのはVBにはないのでしょうか?
VB.NETにはあるのですよね?
CloneとCopyとは別概念です。区別してください。
VBの定義が曖昧です。VB.NETより前のそれを言うのであれば、
VB6(以前)などと表記するとか。
methodは日本語では一般的には"メソッド"と記述します。
はい。
VB6(以前)で、参照型クラスをコピーしたいのです。
調べた中で
Set clsAAA = clsBBB
とするところを
clsAAA = clsBBB.cloneとする
とありました。
まだ調べたのみで理解せず質問し、申し訳ありません。
貴方が求めているのは、CopyではなくCloneですよね。
で、そのクラスのインスタンスが内部で保持しているデータを
ほぼ全てCopyして、それを保持する新たなインスタンスを作り出す
ことがCloneですよね。
つまり、実行すると、自分と同じクラスの新しいインスタンスを
生成し、自分の内部データの必要な値を全て新しいインスタンスに
設定して、そのインスタンスの参照アドレスを返すような Clone
メソッドを自作すればできます。
…ということで。
K.J.K.さん、特攻隊長まるるうさん、ありがとうございます。
実現したいことは説明していただいたとおりのことです。
説明が及ばず申し訳ありません。
VB.NETやJavaにはcloneメゾットを使うとできるとありましたので
VB6(以前)ではどうかと思い、質問させていただいた次第でした。
>VB.NETやJavaにはcloneメゾットを使うとできるとありましたので
既に指摘を受けていますが、メゾットではなく、メソッドという単語を
使ってください。(検索時に使うと有効な情報が引っ掛かりません。)
以下のサイトで『clone メソッド』というキーワード検索をしてください。
[MSDN2 Library]
http://msdn2.microsoft.com/ja-jp/library/default.aspx
[VB.NET]では、Clone メソッドは処理を行うクラスのメンバとして
定義されています。一般的に何でも使えるものでは無いと思います。
それなりに実力があるなら Type.InvokeMember とかを使えば、
一般的なものも作れる可能性はありそうですが、実装されて
いなければ自作した方が早いでしょう。
[VB.NET]でも[VB6.0]でも同じだと思います。
>(検索時に使うと有効な情報が引っ掛かりません。)
「メゾット」で検索すると、、、
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E3%83%A1%E3%82%BE%E3%83%83%E3%83%88&num=50
Cloneメソッドを備えていないオブジェクトなどVB.NETには無い、
とでも信じているのでしょうか?
そもそもCloneすれば解決する問題なのかも疑問視しています。
[VB.NET]ユーザーが補完できそうなリンクを貼っておきます。
[じゃんぬねっと日誌 ICloneable と MemberwiseClone]
http://blogs.wankuma.com/jeanne/archive/2006/04/06/22272.aspx
ツイート | ![]() |