VB6.0からVB.NETへの移行作業をしています。
VB.NETからParamArrayが値渡しになり、プロシージャ内で
ParamArrayの内容を変更できないようになってしまいました。
なにかよい方法はないものでしょうか?
よろしくお願いします。
質問の内容は理解できませんが、恐らく、引数の値がByValになってしまい、
関数が戻った時に値が変わらないという事で解釈して答えます。
ずばり、ByValをByRefに変えてください。
これにより、参照渡しが出来るようになります。
VB.NETではParamArrayをByRefにできないようです。
根本的に書き換えないといけないでしょうか?
VB6の時代からByVal,ByRefは使われていました。
実は、この記述を省略すると内部でByRefとして扱われていたのです。
.NETになって引数の扱いが厳密になった為、どうしようもありません。
この際、変数の扱い方を見直して見てどうでしょうか?
参考までに・・・
http://www.gj.il24.net/~nakasima/vb/tech/style/index.htm
を読んでみてください。読みやすいし、クラスの考え方とかも解るようになりますよ。
クリリンさん、ありがとうございます。
そもそも、ParamArrayはパラメータ配列ですよね?
パラメータを変更することはあまり好ましくありませんが・・・
どうしても変更したいのであれば、戻り値を設けるなりして行ないましょう
ありがとうございました。
ツイート | ![]() |