投稿者 honefai  (社会人) 投稿日時 2010/7/2 17:43:03
>また、ByRefは使用しないことを多くの人が推奨しており

推奨はしてないことは無いように思います。
言語を始めたばかりの方にとっては、ByValとByRefを混在させてメソッドなど定義しちゃうと
混乱するので、初心者の方には推奨しないかも?ということならば理解できます。

ひとつ注意点として。。
プリミティブ型なら問題ないのですが、例えばListなどを引数とする場合、
ByValであっても、参照渡しになります。
例として、以下の場合ListをByValで渡していますが、コンソールには3件と表示されます。

    Dim hoge As New List(Of String)
    hoge.Add("hoge")
    hoge.Add("fuga")
    MossaMossaAA(hoge)
    Console.WriteLine(hoge.Count)

    Private Sub MossaMossaAA(ByVal hoge As List(Of String))
        hoge.Add("piyo")
    End Sub