プロシージャのパラメータと引数
更新 : 2007 年 11 月
プロシージャは、ほとんどの場合、呼び出されたときの状況に関する情報を必要とします。繰り返し実行されるタスクや共有されているタスクを実行するプロシージャは、呼び出されるたびに異なる情報を使用します。この情報は、プロシージャを呼び出すときに渡される変数、定数、および式から構成されています。
パラメータは、プロシージャが呼び出されるときに期待する値を表します。パラメータは、プロシージャの宣言で定義されます。
プロシージャは、パラメータなしでも、1 つのパラメータでも、複数のパラメータでも定義できます。プロシージャの定義のうち、パラメータを指定する部分をパラメータ リストと呼びます。
引数は、プロシージャを呼び出すときに、プロシージャのパラメータに渡す値を表します。呼び出し元のコードは、プロシージャを呼び出すときに引数を渡します。プロシージャ呼び出しのうち、引数を指定する部分を引数リストと呼びます。
次の図は、プロシージャ safeSquareRoot を 2 つの場所から呼び出すコードを示したものです。最初の呼び出しでは、変数 x の値 (4.0) をパラメータ number に渡し、root の戻り値 (2.0) が変数 y に代入されます。2 番目の呼び出しでは、リテラル値 9.0 を number に渡し、戻り値 (3.0) を変数 z に代入します。
パラメータに引数を渡す
詳細については、「パラメータと引数の違い」を参照してください。
パラメータのデータ型
パラメータのデータ型を宣言するには、パラメータの宣言の中で As 句を使用します。たとえば、次の関数は、文字列型と整数型の引数を受け取ります。
Function appointment(ByVal day As String, ByVal hour As Integer) As String
' Insert code to return any appointment for the given day and time.
Return "appointment"
End Function
型チェック スイッチ (Option Strict ステートメント) が Off, の場合、As 句は省略可能です。ただし、いずれかのパラメータがこれを使用している場合は、すべてのパラメータで使用する必要があります。型チェックが On になっている場合は、プロシージャのすべての引数に As 句が必要です。
String パラメータに Byte を渡すなど、呼び出し元のコードが、対応するパラメータとは異なるデータ型の引数を渡す場合、次のいずれかの作業が必要です。
パラメータのデータ型に拡大変換されるデータ型の引数だけを渡す
暗黙の縮小変換を許可する Option Strict Off を設定する
変換キーワードを使用してデータ型を明示的に変換する
型パラメータ。
ジェネリック プロシージャ も、通常のパラメータの他に 1 つ以上の型パラメータを定義します。ジェネリック プロシージャを使うと、呼び出し元のコードは、プロシージャを呼び出すたびに異なるデータ型を渡すことができるため、個々の呼び出しの要件に合わせてデータ型を変更できます。Visual Basic におけるジェネリック プロシージャ を参照してください。