結論、こうなるらしい。 - ByVal ByRef 値型 値渡し 参照渡し 参照型 参照渡し参照の値渡し 参照渡し つまり、参照型を引数として受け取るFunctionやSubは、どっちにしても参照渡しになるという罠。 (5/28)id:bleis-tiftさんに指摘されて直しました。 ちなみにどれが値型で、どれが参照型かというのは、 http://msdn.microsoft.com/ja-jp/library/dd314344.aspx に書いてありました。 Dateが値型とか、Javaな人にとってはハマりそうなポイントかも。 なわけで、サンプル書いてみた。 値型 Class Test Public Shared Sub Main() Dim i = 20 ' ByValで渡す ByValFunction(i) System.Console.WriteLine("i = " & i) '
![VB.NETのByValとByRefについて - ITコンサルの日常](https://cdn-ak-scissors.b.st-hatena.com/image/square/9dad0fe4e414fda54ece5f8924af0288000bdd05/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Ft%2Ftaka_2%2F20090528%2F20090528234725.jpg)