基本

[VB.NET] メソッドへ引数を渡す際の『値渡し』と『参照渡し』の違い(ByVal, ByRef)

今回は、VB.NETでメソッドへ引数を渡す際の『値渡し』と『参照渡し』の違いについてご紹介します。

値渡し

メソッドへ値をコピーして渡すため、引数に指定した元の値は変化しません。

値渡しを行うには、呼び出されるメソッド側に「ByVal」キーワードを指定する必要があります。

メソッド名(ByVal 変数名)

 

サンプル

それではサンプルを見てみましょう。
Console.WriteLineを使って、値渡しでメソッドを実行した後の、引数に指定した変数の値をコンソールに出力します。

 

実行結果

上記を実行し、コンソールに表示された結果がこちらです。

実行結果

1

TestByvalメソッドを実行した後も、引数に指定した元の変数「a」の値は変化していないのがわかります。

 

参照渡し

メソッドへ値が入った場所(アドレス)を渡すため、メソッドの中で値が変化すると元の値も変更されます。

参照渡しを行うには、呼び出されるメソッド側に「ByRef」キーワードを指定する必要があります。

メソッド名(ByRef 変数名)

 

サンプル

それではサンプルを見てみましょう。
Console.WriteLineを使って、参照渡しでメソッドを実行した後の、引数に指定した変数の値をコンソールに出力します。

 

実行結果

上記を実行し、コンソールに表示された結果がこちらです。

実行結果

10

TestByrefメソッドを実行後、引数に指定した元の変数「a」の値も変化しているのがわかります。

 

最後に

VB.NETで『メソッドへ引数を渡す際の「値渡し」と「参照渡し」の違い』についてのご紹介は以上です。

どなたかのお役に立てていれば幸いです。