ByValとByRefの関係
  (C) 2001 A c t o r .N e t Soft Ware



 以下に公開するソースなどの著作は 篠田直樹 に復帰します。
原則として無許可で使用する事が出来ますが、ここに書かれている内容を
直リンクや引用などであたかも第三者が作成した様に見せたり如何なる事情でも金銭が発生する行為を禁止します。



ByValとByRef、この関係を御存知でしょうか。
私はつい最近まで、ByValの方がメモリー占有率が低い故に軽いと考えていました。
メモリーの管理する概念になるのですが、以下の事は良く知られている話です。

ByVal 値参照
ByRef 値渡し


共通関数を作る時に値を渡したり、参照する必要が出る訳ですが、
通常、引数に何も宣言をしない場合はByRefが使われる事になるそうです。

そこで、ポインタの概念が出てきます。
よく変数に値を引き渡す場合、C言語ではポインタが使われるのですがこれは値を参照する手法です。
ポインタはメモリのアドレス番地を保有していて、対象となるアドレスの中身を直接参照する手法です。

値渡しとは一度、参照した内容を別の場所にコピーし、処理が終わるとメモリーを解放します。
つまり、ポインターはダイレクトに見たい内容を直接参照するのに対して、
値渡しは対象内容のコピーを行なって間接的に参照する事になります。
従って値を参照する場合、関数を作った仕様に間接参照を行なう必要が無い時はByRefを使用
した方が処理として高速化される事になります。



Copyright (C) 2001 A c t o r .N e t Soft Ware All Right Reserved