Share via


Parameterlista (Visual Basic)

Anger de parametrar som en procedur förväntar sig när den anropas. Flera parametrar avgränsas med kommatecken. Följande är syntaxen för en parameter.

Syntax

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

Delar

attributelist
Valfritt. Lista över attribut som gäller för den här parametern. Du måste omsluta attributlistan i vinkelparenteser ("<" och ">").

Optional
Valfritt. Anger att den här parametern inte krävs när proceduren anropas.

ByVal
Valfritt. Anger att proceduren inte kan ersätta eller omtilldela variabelelementet som ligger till grund för motsvarande argument i den anropande koden.

ByRef
Valfritt. Anger att proceduren kan ändra det underliggande variabelelementet i anropskoden på samma sätt som den anropande koden själv kan göra.

ParamArray
Valfritt. Anger att den sista parametern i parameterlistan är en valfri matris med element av den angivna datatypen. På så sätt kan anropskoden skicka ett godtyckligt antal argument till proceduren.

parametername
Obligatoriska. Namnet på den lokala variabeln som representerar parametern.

parametertype
Krävs om Option Strict är On. Datatyp för den lokala variabeln som representerar parametern.

defaultvalue
Krävs för Optional parametrar. Alla konstanta eller konstanta uttryck som utvärderas till parameterns datatyp. Om typen är Object, eller en klass, ett gränssnitt, en matris eller en struktur kan standardvärdet bara vara Nothing.

Kommentarer

Parametrar omges av parenteser och avgränsas med kommatecken. En parameter kan deklareras med valfri datatyp. Om du inte anger parametertype, är standardvärdet Object.

När anropande kod anropar proceduren skickar den ett argument till varje obligatorisk parameter. Mer information finns i Skillnader mellan parametrar och argument.

Argumentet som den anropande koden skickar till varje parameter är en pekare till ett underliggande element i anropskoden. Om det här elementet inte kan ändras (en konstant, literal, uppräkning eller ett uttryck) är det omöjligt för någon kod att ändra det. Om det är ett variabelelement (en deklarerad variabel, fält, egenskap, matriselement eller strukturelement) kan den anropande koden ändra det. Mer information finns i Skillnader mellan ändringsbara och icke-modifierbara argument.

Om ett variabelelement skickas ByRefkan proceduren också ändra det. Mer information finns i Skillnader mellan att skicka ett argument efter värde och efter referens.

Regler

  • Parenteser. Om du anger en parameterlista måste du omsluta den inom parenteser. Om det inte finns några parametrar kan du fortfarande använda parenteser som omger en tom lista. Detta förbättrar kodens läsbarhet genom att klargöra att elementet är en procedur.

  • Valfria parametrar. Om du använder Optional modifieraren för en parameter måste alla efterföljande parametrar i listan också vara valfria och deklareras med hjälp Optional av modifieraren.

    Varje valfri parameterdeklaration måste ange defaultvalue -satsen.

    Mer information finns i Valfria parametrar.

  • Parametermatriser. Du måste ange ByVal för en ParamArray parameter.

    Du kan inte använda både Optional och ParamArray i samma parameterlista.

    Mer information finns i Parametermatriser.

  • Överföringsmekanism. Standardmekanismen för varje argument är ByVal, vilket innebär att proceduren inte kan ändra det underliggande variabelelementet. Men om elementet är en referenstyp kan proceduren ändra innehållet eller medlemmarna i det underliggande objektet, även om det inte kan ersätta eller omtilldela själva objektet.

  • Parameternamn. Om parameterns datatyp är en matris följer parametername du omedelbart efter parenteser. Mer information om parameternamn finns i Deklarerade elementnamn.

Exempel

I följande exempel visas en Function procedur som definierar två parametrar.

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?")

Se även