VB.NETでParamArrayが値渡しに

解決


こじ  2003-08-20 01:26:10  No: 108156

VB6.0からVB.NETへの移行作業をしています。
VB.NETからParamArrayが値渡しになり、プロシージャ内で
ParamArrayの内容を変更できないようになってしまいました。
なにかよい方法はないものでしょうか?

よろしくお願いします。


クリリン  2003-08-20 02:34:56  No: 108157

質問の内容は理解できませんが、恐らく、引数の値がByValになってしまい、
関数が戻った時に値が変わらないという事で解釈して答えます。
ずばり、ByValをByRefに変えてください。
これにより、参照渡しが出来るようになります。


こじ  2003-08-20 02:47:24  No: 108158

VB.NETではParamArrayをByRefにできないようです。


こじ  2003-08-20 02:47:51  No: 108159

根本的に書き換えないといけないでしょうか?


クリリン  2003-08-20 02:55:56  No: 108160

VB6の時代からByVal,ByRefは使われていました。
実は、この記述を省略すると内部でByRefとして扱われていたのです。
.NETになって引数の扱いが厳密になった為、どうしようもありません。
この際、変数の扱い方を見直して見てどうでしょうか?
参考までに・・・
http://www.gj.il24.net/~nakasima/vb/tech/style/index.htm
を読んでみてください。読みやすいし、クラスの考え方とかも解るようになりますよ。


こじ  2003-08-20 03:00:29  No: 108161

クリリンさん、ありがとうございます。


クリリン  2003-08-20 03:10:08  No: 108162

そもそも、ParamArrayはパラメータ配列ですよね?
パラメータを変更することはあまり好ましくありませんが・・・
どうしても変更したいのであれば、戻り値を設けるなりして行ないましょう


こじ  2003-08-20 03:14:58  No: 108163

ありがとうございました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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