パラメーターの一覧 (Visual Basic)

呼び出し時に、プロシージャが受け取ることのできるパラメーターを指定します。複数のパラメーターを指定するときは、コンマ (,) で区切ります。パラメーターを 1 つ定義する場合の構文は次のとおりです。

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

指定項目

  • attributelist
    省略可能です。このパラメーターに適用する属性の一覧を指定します。属性リスト (Visual Basic) は、山かっこ (< および >) で囲む必要があります。

  • Optional
    省略可能です。プロシージャを呼び出すときに、このパラメーターを省略できることを示します。

  • ByVal
    省略可能です。呼び出し元のコードにある、対応する引数の基になる可変要素を、プロシージャが置き換えたり再割り当てしたりできないことを示します。

  • ByRef
    省略可能です。呼び出し元のコードにある基の可変要素を、呼び出し元のコード自体と同じようにプロシージャが変更できることを示します。

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

  • parametername
    必ず指定します。パラメーターを表すローカル変数の名前を指定します。

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

  • defaultvalue
    Optional パラメーターの場合は必ず指定します。任意の定数、または結果がパラメーターのデータ型になる定数式を指定します。型が Object、つまりクラス、インターフェイス、配列、または構造体の場合、既定値に指定できるのは Nothing だけです。

解説

パラメーターはかっこで囲み、コンマで区切って指定します。パラメーターはどのデータ型でも宣言できます。parametertype を指定しなかった場合は、既定値の Object に設定されます。

呼び出し元のコードはプロシージャを呼び出すとき、各必須パラメーターに引数を渡します。詳細については、「パラメーターと引数の違い (Visual Basic)」を参照してください。

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

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

規則

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

  • **省略可能なパラメーター。**パラメーターに Optional 修飾子を指定すると、リスト内の後続のすべてのパラメーターにも Optional 修飾子を使用し、オプションで宣言することが必要になります。

    省略可能なパラメーターの宣言には、それぞれ defaultvalue 句を指定する必要があります。

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

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

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

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

  • **値渡し。**既定では、すべての引数が ByVal で渡されます。つまり、プロシージャは基になる可変要素を変更できません。ただし、要素が参照型であれば、プロシージャは基になるオブジェクトの内容やメンバーを更できます (オブジェクト自体を置き換えたり再割り当てしたりすることはできません)。

  • **パラメーター名。**パラメーターのデータ型が配列である場合は、parametername のすぐ後にかっこを続けます。パラメーター名の詳細については、「宣言された要素の名前 (Visual Basic)」を参照してください。

使用例

パラメーターが 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?")

参照

処理手順

方法: コード内でステートメントを分割および連結する (Visual Basic)

関連項目

Function ステートメント (Visual Basic)

Sub ステートメント (Visual Basic)

Declare ステートメント

Structure ステートメント

Option Strict ステートメント

属性 (C# および Visual Basic)

DllImportAttribute