参照型コピー


CP  2006-08-08 21:38:57  No: 132706

参照型クラスをコピーしたいのですが、
VBではできないのでしょうか?
cloneメゾットというのはVBにはないのでしょうか?
VB.NETにはあるのですよね?


K.J.K.  2006-08-08 21:58:38  No: 132707

CloneとCopyとは別概念です。区別してください。
VBの定義が曖昧です。VB.NETより前のそれを言うのであれば、
VB6(以前)などと表記するとか。
methodは日本語では一般的には"メソッド"と記述します。


CP  2006-08-08 23:52:03  No: 132708

はい。
VB6(以前)で、参照型クラスをコピーしたいのです。
調べた中で
 Set clsAAA = clsBBB
 とするところを
 clsAAA = clsBBB.cloneとする
とありました。
まだ調べたのみで理解せず質問し、申し訳ありません。


K.J.K.  2006-08-09 18:23:49  No: 132709

貴方が求めているのは、CopyではなくCloneですよね。
で、そのクラスのインスタンスが内部で保持しているデータを
ほぼ全てCopyして、それを保持する新たなインスタンスを作り出す
ことがCloneですよね。


特攻隊長まるるう  2006-08-09 18:34:31  No: 132710

つまり、実行すると、自分と同じクラスの新しいインスタンスを
生成し、自分の内部データの必要な値を全て新しいインスタンスに
設定して、そのインスタンスの参照アドレスを返すような Clone 
メソッドを自作すればできます。
…ということで。


CP  2006-08-10 21:54:13  No: 132711

K.J.K.さん、特攻隊長まるるうさん、ありがとうございます。
実現したいことは説明していただいたとおりのことです。
説明が及ばず申し訳ありません。

VB.NETやJavaにはcloneメゾットを使うとできるとありましたので
VB6(以前)ではどうかと思い、質問させていただいた次第でした。


特攻隊長まるるう  2006-08-10 22:12:46  No: 132712

>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]でも同じだと思います。


Blue  2006-08-10 22:41:34  No: 132713

>(検索時に使うと有効な情報が引っ掛かりません。)
「メゾット」で検索すると、、、
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


K.J.K.  2006-08-11 18:29:43  No: 132714

Cloneメソッドを備えていないオブジェクトなどVB.NETには無い、
とでも信じているのでしょうか?

そもそもCloneすれば解決する問題なのかも疑問視しています。


特攻隊長まるるう  2006-08-16 00:38:07  No: 132715

[VB.NET]ユーザーが補完できそうなリンクを貼っておきます。
[じゃんぬねっと日誌  ICloneable と MemberwiseClone]
http://blogs.wankuma.com/jeanne/archive/2006/04/06/22272.aspx


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加