パラメーター リスト (Visual Basic)

プロシージャが呼び出されるときに必要なパラメーターを指定します。 複数のパラメーターはコンマで区切られます。 1 つのパラメーターの構文を次に示します。

構文

[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]

部品

attributelist
任意。 このパラメーターに適用される属性の一覧。 属性リストは山かっこ ("<" と ">") で囲む必要があります。

Optional
任意。 プロシージャを呼び出すときにこのパラメーターが必要ないことを指定します。

ByVal
任意。 プロシージャが呼び出し元のコード内の対応する引数の基になる変数要素を置き換えたり、再割り当てしたりできないように指定します。

ByRef
任意。 呼び出し元コード自体と同じ方法で、プロシージャが呼び出し元コードの基になる変数要素を変更できることを指定します。

ParamArray
任意。 パラメーター リストの最後のパラメーターが、指定したデータ型の要素の省略可能な配列であることを指定します。 これにより、呼び出し元のコードは任意の数の引数をプロシージャに渡すことができます。

parametername
必須。 パラメーターを表すローカル変数の名前。

parametertype
Option Strict が On の場合は必ず指定します。 パラメーターを表すローカル変数のデータ型。

defaultvalue
Optionalパラメーターに必要です。 パラメーターのデータ型に評価される定数または定数式。 型が Object、またはクラス、インターフェイス、配列、または構造体の場合、既定値は Nothingのみ可能です。

注釈

パラメーターはかっこで囲まれ、コンマで区切られます。 パラメーターは、任意のデータ型で宣言できます。 parametertypeを指定しない場合、既定値は Object になります。

呼び出し元のコードがプロシージャを呼び出すと、各必須パラメーターに 引数 が渡されます。 詳細については、「Differences Between Parameters and Arguments (パラメーターと引数の違い)」をご覧ください。

呼び出し元のコードが各パラメーターに渡す引数は、呼び出し元のコード内の基になる要素へのポインターです。 この要素が 不変でない 場合 (定数、リテラル、列挙、または式)、コードで変更することはできません。 変数要素 (宣言された 変数 、フィールド、プロパティ、配列要素、または構造体要素) の場合、呼び出し元のコードで変更できます。 詳細については、「 変更可能な引数と変更できない引数の違い」を参照してください。

変数要素が ByRef渡された場合、プロシージャはそれを変更することもできます。 詳細については、「 引数を値渡しと参照渡しの違い」を参照してください。

準則

  • かっこ。 パラメーター リストを指定する場合は、かっこで囲む必要があります。 パラメーターがない場合でも、空のリストを囲むかっこを使用できます。 これにより、要素がプロシージャであることを明確にすることで、コードの読みやすさが向上します。

  • 省略可能なパラメーター。 パラメーターに対して Optional 修飾子を使用する場合は、リスト内の後続のすべてのパラメーターも省略可能で、 Optional 修飾子を使用して宣言する必要があります。

    省略可能なすべてのパラメーター宣言で、 defaultvalue 句を指定する必要があります。

    詳細については、「 省略可能なパラメーター」を参照してください。

  • パラメーター配列。 ParamArray パラメーターのByValを指定する必要があります。

    同じパラメーター リストで Optional と ParamArray の両方を使用することはできません。

    詳細については、「 パラメーター配列」を参照してください。

  • 受け渡しメカニズム。 すべての引数の既定のメカニズムは ByVal。つまり、プロシージャは基になる変数要素を変更できません。 ただし、要素が参照型の場合、プロシージャは、オブジェクト自体を置き換えたり再割り当てしたりできない場合でも、基になるオブジェクトの内容またはメンバーを変更できます。

  • パラメーター名。 パラメーターのデータ型が配列の場合は、かっこですぐに parametername に従います。 パラメーター名の詳細については、「 宣言された要素名」を参照してください。

例

次の例は、2 つのパラメーターを定義する Function プロシージャを示しています。

Public Function HowMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = HowMany("a"c, "How many a's in this string?")

こちらも参照ください