「VB.NET」SubプロシージャにByVal引数を使う

2021年9月30日

構文
ByVal 呼び出し元で与えたパラメータのコピーがプロシージャに渡されます。
プロシージャ内でパラメータ変数の値を上書きしても、呼び出し元の変数の値には影響を与えません。
使用例

'クラスUserの定義
Public Class User
    Public age As Integer
End Class

Module Module1

    Sub Main()

        'インスタンス生成
        Dim userA As New User()

        userA.age = 30

        Console.WriteLine("値1: " + userA.age.ToString())

        'Sub プロシージャを使用
        testfunc(userA)

        ' パラメータageを出力
        Console.WriteLine("値2: " + userA.age.ToString())

        Console.ReadKey()

    End Sub

    ' プロシージャ―
    Sub testfunc(ByVal userA As User)
        'ageの値を変更
        userA.age = 20
    End Sub

End Module

結果
値1: 30
値2: 20

VB.net

Posted by arkgame