変更できる引数と変更できない引数の違い (Visual Basic)

プロシージャを呼び出す場合、通常は 1 つ以上の引数を渡します。 各引数は、基となるプログラミング要素に対応します。 基となる要素と引数自体のいずれも、変更可能な場合と変更不可能な場合があります。

変更可能な要素と変更不可能な要素

プログラミング要素は、値を変更できる "変更可能な要素"、または作成後は固定値を持つ "変更不可能な要素" のいずれかの場合があります。

次の表に、変更可能なプログラミング要素と変更不可能なプログラミング要素を示します。

変更可能な要素 変更不可能な要素
オブジェクト変数を含むローカル変数 (プロシージャ内で宣言) (読み取り専用を除く) 読み取り専用の変数、フィールド、プロパティ
フィールド (モジュール、クラス、構造体のメンバー変数) (読み取り専用を除く) 定数とリテラル
プロパティ (読み取り専用を除く) 列挙メンバー
配列要素 式 (要素が変更可能な場合でも)

変更可能な引数と変更不可能な引数

"変更可能な引数" とは、基となる要素が変更可能なものです。 呼び出し元のコードにはいつでも新しい値を格納できます。引数 ByRef を渡すと、プロシージャのコードによって呼び出し元のコードの基となる要素を変更することもできます。

"変更不可能な引数" には、変更不可能な基となる要素があるか、ByVal が渡されます。 変更可能な要素であっても、プロシージャを使用して、呼び出し元のコードの基となる要素を変更することはできません。 変更不可能な要素の場合、呼び出し元のコード自体でそれを変更することはできません。

呼び出されたプロシージャによって、変更不可能な引数のローカル コピーを変更することはできますが、その変更は呼び出し元のコードの基となる要素には影響しません。

関連項目