ByRefの「の違い


違い "ByRefの" と "BYVAL"


導入

パラメータを受け入れる私達の機能では、私たちはしばしば、彼らが渡される方法に注意を払うことなく、これらのパラメータを渡します。値(ByValの)または参照(ByRefの)ではありますか?しかし、過去の間で選択することが非常に重要なものです "ByValを" 若しくは "ByRefの"。確かに、それは多くのことを変更することができますし、それは我々がこのチュートリアルで表示されますものです。

ByValの:値について

値がちょうどこの変数のコピーを渡すことによって、任意の関数に変数を渡します。いくつかの方法で機能することによって処理することができる具体的値。別の変数に値を割り当てるか、別の方法でそれを使用しますか。それは変数への変更に影響を与えるものの、それだけで、関数のローカル変数にしていない私たちの関数にパラメータとして渡された主な変数について説明するので、あなたはその値を変更することはできません。

ByRefの:参照することにより

参照により関数に変数を渡すこの関数は(メイン変数IE)、この変数への変更に影響を与えることができ、それは値を返さないサブ例に使用することができるが、ちょうど渡された変数の操作に影響を与えます。のは、これら2つのキーワードの概念を理解するための例を見てみましょう。

私たちは、そのパラメータを受け入れるか、ByValのを渡すことができる機能を持っている場合は、ByValキーワードの代わりに使用することができるのByRefが、関数が変数を必要とする場合として渡されるので、反対が有効であることはできません参照それは変数が値によって渡された場合に行うことができない新しい値を割り当てます。

この例では、コースを返すように値を持たないサブnを作成します。 SUBこれは名前のSWAPになります。その機能は、YにXの値とXとYの値を与えることです...
SUBのコードは次のようになります。

公共のサブスワップ(ByRefのは整数、整数としてのByRef YとしてのX)tmpなどの整数を暗くTMP = XX = YY = TmpのEnd Subの

ここでは、参照によってパラメータを宣言します

SUBを呼び出すします。

整数暗いX = 10として= 20日整数としてYSAWP(X、Y)MSGBOX " X値= " & X & vbCrLf & " Y値= " & Y

これはよくSWAP機能過ぎX = 10、Y = 20である二つの変数でした。 SWAPのSUBは、これら2つの変数の値と表示されたメッセージボックスを変更します:
X値= 20
Y値= 10

その後、SWAP関数に渡されたキー変数の値が変更されました。

しかし、あなたが書いた場合 "ByValを" 代わりに "ByRefの" メッセージボックスが表示されます。
X値= 10
Y値= 20

次に、関数は、変数の値を変更しません。

================================================== ====

小さな観察は、今私たちが知っているように、この表記を使用した場合、手順(サブ)を呼び出すためのCallステートメントの使用は、括弧を過ごす課し、パラメータはプロシージャに渡されます。
が)これらのブラケットを倍増(((PARAM1、PARAM2)la_procを呼び出す)、VBはvalで(通過値を強制的に "参照することにより" 手順で指定されています。しかし、これは単なる観察、Callステートメントまたは単純で、括弧の使用を使用していない開発者の大半(および手順でパスモードの彼らの選択を指定する)であります
ByRefの「の違いこの記事(PDF)をダウンロード CrazyMan19投稿者。 」と題されたこの文書 違い "ByRefの" と "BYVAL" (VB6やVBAで)»からコード・ソース (Codes-sources.commentcamarche.net)クリエイティブ・コモンズのライセンスの下で利用できるようになります。あなたはライセンスの定める条件の下で、このページのコピーを変更、コピーすることができ、このノートとして明確に表示されます。この記事をダウンロードする(PDF