Dela via


Ange instruktion (Visual Basic)

Deklarerar en Set egenskapsprocedur som används för att tilldela ett värde till en egenskap.

Syntax

[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]  
    [ statements ]  
End Set  

Delar

attributelist
Valfritt. Se Attributlista.

accessmodifier
Valfri på högst en av - och-uttrycken GetSet i den här egenskapen. Kan vara något av följande:

Se Åtkomstnivåer i Visual Basic.

value
Valfritt. Parameter som innehåller det nya värdet för egenskapen. Om det inte anges (det vill: om parameterlistan inte finns eller är tom) definieras en implicit parameter med namnet value . Datatypen för den här implicita parametern är datatypen för egenskapen där den här Set instruktionen deklareras.

datatype
Krävs om value finns och Option Strict är On. Det går inte att vara närvarande om value det inte anges. Datatyp för parametern value . Den angivna datatypen måste vara samma som datatypen för den egenskap där den här Set instruktionen deklareras.

statements
Valfritt. En eller flera instruktioner som körs när egenskapsproceduren Set anropas.

End Set
Obligatoriska. Avslutar definitionen av egenskapsproceduren Set .

Kommentarer

Varje egenskap måste ha en Set egenskapsprocedur om inte egenskapen har markerats ReadOnly. Proceduren Set används för att ange värdet för egenskapen.

Visual Basic anropar automatiskt en egenskaps procedur när en tilldelningsinstruktor Set ger ett värde som ska lagras i egenskapen.

Visual Basic skickar en parameter till proceduren Set under egenskapstilldelningar. Om du inte anger en parameter för Setanvänder den integrerade utvecklingsmiljön (IDE) en implicit parameter med namnet value. Parametern innehåller det värde som ska tilldelas egenskapen. Du lagrar vanligtvis det här värdet i en privat lokal variabel och returnerar det när proceduren Get anropas.

Brödtexten i egenskapsdeklarationen kan endast innehålla egenskapens och Set procedurerna mellan egenskapsutdraget Get och -instruktionenEnd Property. Den kan inte lagra något annat än dessa procedurer. I synnerhet kan den inte lagra egenskapens aktuella värde. Du måste lagra det här värdet utanför egenskapen, för om du lagrar det i någon av egenskapsprocedurerna kan den andra egenskapsproceduren inte komma åt det. Den vanliga metoden är att lagra värdet i en privat variabel som deklareras på samma nivå som egenskapen. Du måste definiera en Set procedur i egenskapen som den gäller för.

Proceduren Set är standard för åtkomstnivån för dess innehållande egenskap såvida du inte använder accessmodifier i -instruktionen Set .

Regler

  • Blandade åtkomstnivåer. Om du definierar en skrivskyddad egenskap kan du ange en annan åtkomstnivå för antingen proceduren GetSet eller , men inte båda. Om du gör det måste åtkomstnivån för proceduren vara mer restriktiv än egenskapens åtkomstnivå. Om egenskapen till exempel deklareras Friendkan du deklarera proceduren SetPrivate, men inte Public.

    Om du definierar en WriteOnly egenskap representerar proceduren Set hela egenskapen. Du kan inte deklarera en annan åtkomstnivå för Set, eftersom det skulle ange två åtkomstnivåer för egenskapen.

Funktionssätt

  • Returnerar från en egenskapsprocedur. När proceduren Set återgår till den anropande koden fortsätter körningen att följa instruktionen som angav värdet som ska lagras.

    Setegenskapsprocedurer kan returneras med antingen returutdraget eller exit-instruktionen.

    Instruktionen Exit Property och Return orsakar ett omedelbart utträde från en egenskapsprocedur. Valfritt antal Exit Property och Return instruktioner kan visas var som helst i proceduren och du kan blanda Exit Property och Return instruktioner.

Exempel

I följande exempel används -instruktionen Set för att ange värdet för en egenskap.

Class propClass
    Private propVal As Integer
    Property Prop1() As Integer
        Get
            Return propVal
        End Get
        Set(ByVal value As Integer)
            propVal = value
        End Set
    End Property
End Class

Se även