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

パラメータへのインスタンスの渡し方

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

お世話になっております。

今回、メソッドのパラメータにクラスのインスタンスを受け取ろうとしています。
このインスタンスはコピーではなく参照としたかったためByRef指定にしているのですが、
調べたところどうもByValでも参照となるようで、相違点がわからずどちらにしようか迷っています。

いまのところはどちらの場合でも意図した動作になっているので良いのですが、後々問題が出るとやっかいなので
「インスタンス引渡し時のByVal/ByRefの相違点」を質問させていただきたいと思います。

よろしくお願いします。
■No21138に返信(鶏唐揚さんの記事)
[Visual Basic 中学校 初級講座]第34回 値型と参照型
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
>6.値渡しと参照渡し
>■リスト11
参照。
返信ありがとうございます

■No21139に返信(るしぇさんの記事)
> ■No21138に返信(鶏唐揚さんの記事)
> [Visual Basic 中学校 初級講座]第34回 値型と参照型
> http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
> >6.値渡しと参照渡し
> >■リスト11
> 参照。

なるほど、ByValの場合はインスタンスの参照先を変更できないだけということですか。
今回はインスタンス自体を内部で変更されるとまずいのでByValにします。

ありがとうございました
解決済み!
> なるほど、ByValの場合はインスタンスの参照先を変更できないだけということですか。
> 今回はインスタンス自体を内部で変更されるとまずいのでByValにします。
なにか微妙に全然ちがう気がする
■No21140に返信(鶏唐揚さんの記事)
> なるほど、ByValの場合はインスタンスの参照先を変更できないだけということですか。

いいえ。参照の変更できます。

> 今回はインスタンス自体を内部で変更されるとまずいのでByValにします。

渡された先での参照自体の変更は呼び出し側では変更されないので ByVal で良いです。

# 1 行目を読む限りは、「値型」 と 「値渡し」、「参照型」 と 「参照渡し」 を混同なさっているような気がします。

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