ByvalとByRefの使用

1100 ワード

ByvalとByRefの使用
byval単伝パラメータ
byrefパラメータが定義されている場合、彼はその値を返します.
はっきり言えない!
Visual Basicでは、キーワードByValまたはByRefを個別に指定し、値または参照によってパラメータをプロシージャに渡すことができます.値を介してパラメータを渡すことは、プロシージャがコールコードでパラメータの基礎変数要素の内容を変更できないことを意味します.変数要素の内容は、呼び出しコード自体が使用できる同じ方法でプロシージャを参照して変更することによって変更される.
値と参照によるパラメータの伝達の違いは、データ型を値タイプと参照タイプに分けるのとは異なります.しかし、2つのカテゴリは確かに相互に影響している.
キーワードByRefを使用して変数パラメータを参照して渡すと、プロシージャは変数自体を変更できます.具体的には、パラメータがオブジェクト変数である場合、新しいオブジェクトを割り当てることができます.この再割り当ては、呼び出しプログラムのオブジェクト変数にも影響します.
ByValを渡すパラメータが提供される例では、Replaceサブルーチンが参照によってパラメータ配列を取得するように変更されると、新しい配列K()がコールコードの配列変数Nに割り当てられる.N()の結果は次のようになります.
MsgBox("After Replace(N) taking A() argument ByRef: " & _
              CStr(N(0)) & CStr(N(1)) & CStr(N(2)) & CStr(N(3)))
' The element values of N() are now 101, 201, and 301. Because N was 
' passed ByRef, Replace could modify the variable N and assign a new 
' array to it. Because N is a reference type, Replace could also change 
' its members

転載先:https://www.cnblogs.com/T_98Dsky/archive/2005/04/22/143260.html