プロシージャのパラメーターと引数 (Visual Basic)
ほとんどの場合、プロシージャには呼び出された状況に関する情報が必要です。 反復的なタスクや共有タスクを実行するプロシージャでは、呼び出しごとに異なる情報を使用します。 この情報は、呼び出し時にプロシージャに渡す変数、定数、式で構成されます。
"パラメーター" は、プロシージャを呼び出すときに指定する必要がある値を表します。 プロシージャの宣言でパラメーターを定義します。
パラメーターなし、1 つのパラメーター、または複数のパラメーターでプロシージャを定義できます。 プロシージャ定義の、パラメーターを指定する部分は、"パラメーター リスト" と呼ばれます。
"引数" は、プロシージャを呼び出すときにプロシージャ パラメーターに指定する値を表します。 呼び出し元のコードは、プロシージャを呼び出すときに引数を指定します。 プロシージャ呼び出しの、引数を指定する部分は、"引数リスト" と呼ばれます。
次の図は、2 つの異なる場所から safeSquareRoot
プロシージャを呼び出すコードを示しています。 最初の呼び出しでは、変数 x
の値 (4.0) を number
パラメーターに渡し、root
の戻り値 (2.0) が変数 y
に割り当てられます。 2 番目の呼び出しでは、リテラル値 9.0 を number
に渡し、戻り値 (3.0) を変数 z
に割り当てます。
詳細については、「Differences Between Parameters and Arguments (パラメーターと引数の違い)」をご覧ください。
パラメーターのデータ型
パラメーターのデータ型を定義するには、宣言で 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
句は省略可能です。ただし、いずれか 1 つのパラメーターで使用する場合は、すべてのパラメーターで使用する必要があります。 型チェックが On
の場合は、すべてのプロシージャ パラメーターで As
句が必須となります。
呼び出し元のコードが、対応するパラメーターのデータ型とは異なるデータ型の引数 (String
パラメーターに対する Byte
など) を指定することを要求している場合、次のいずれかを実行する必要があります。
パラメーターのデータ型に拡大変換するデータ型の引数のみを指定する。
Option Strict Off
を設定して、暗黙的な縮小変換を許可する。または、変換キーワードを使用して、データ型を明示的に変換する。
型パラメーター
"ジェネリック プロシージャ" では、通常のパラメーターに加え、1 つ以上の "型パラメーター" も定義します。 ジェネリック プロシージャを使用すると、呼び出し元のコードは、プロシージャを呼び出すたびに異なるデータ型を渡すことができるため、個々の呼び出しの要件に合わせてデータ型を調整できます。 「 Generic Procedures in Visual Basic」を参照してください。
関連項目
.NET