値型と参照型、及び値渡しと参照渡し

値型
・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プログラミング関係一覧に戻る


システム開発の【Spread i-Vision】


google検索の結果はこちら