値型
・Byte
・Short
・Integer
・Long
・Single
・Double
・Decimal
・Char
・Boolean
参照型
・String
・Object
値型データの変数を宣言した場合、その型のデータ領域自体がメモリ上に確保される。
しかし、参照型の場合は、それぞれの型の領域が確保されるのではなく、
メモリ上に確保されるのは、データ実体のメモリ上の位置情報を格納する領域。
値渡し
関数を呼び出す際、引数に変数の値を渡す。
関数内で変数が変更されても、元の変数に影響はない。
ByValで指定する。
参照渡し
関数を呼び出す際、引数に変数のアドレスなどの参照を渡す。
関数内で変数が変更されると、元の変数も変化する。
ByRefで指定する。
検証
事前準備
・フォームにラベルを2つ貼り付ける。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As Integer = 1
PlusMeth1(a)
Label1.Text = “ByVal:” & a
PlusMeth2(a)
Label2.Text = “ByRef:” & a
End Sub
Private Sub PlusMeth1(ByVal a As Integer)
a += 100
End Sub
Private Sub PlusMeth2(ByRef a As Integer)
a += 100
End Sub
End Class
こんな感じになります。
値渡しの場合は、変数の値が変更されておらず1のままです。
参照渡しの場合は、変数の値が変更され101になっております。
システム開発のためのVB.NETプログラミング関係一覧に戻る