Utasítás beállítása (Visual Basic)

Deklarál egy Set tulajdonsághoz érték hozzárendeléséhez használt tulajdonságeljárást.

Syntax

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

Részek

attributelist
Opcionális. Lásd: Attribútumlista.

accessmodifier
A tulajdonságban szereplő utasítások és Set utasítások közül legfeljebb egy Get nem kötelező. A következők egyike lehet:

Lásd a Visual Basic hozzáférési szintjeinek megtekintését.

value
Opcionális. A tulajdonság új értékét tartalmazó paraméter. Ha nincs megadva (vagyis ha a paraméterlista nem jelenik meg vagy üres), a rendszer egy implicit paramétert value határoz meg. Ennek az implicit paraméternek az adattípusa annak a tulajdonságnak az adattípusa, amelyben ez Set az utasítás deklarálva van.

datatype
Kötelező, ha value jelen van és Option Strict van On. Nem lehet jelen, ha value nincs megadva. A paraméter adattípusa value . A megadott adattípusnak meg kell egyeznie annak a tulajdonságnak az adattípusával, amelyben ez Set az utasítás deklarálva van.

statements
Opcionális. Egy vagy több utasítás, amely a Set tulajdonságeljárás meghívásakor fut.

End Set
Szükséges. Leállítja a tulajdonságeljárás definícióját Set .

Megjegyzések

Minden tulajdonságnak tulajdonságeljárással Set kell rendelkeznie, kivéve, ha a tulajdonság meg van jelölve ReadOnly. Az Set eljárás a tulajdonság értékének beállítására szolgál.

A Visual Basic automatikusan meghívja a tulajdonság eljárását Set , amikor egy hozzárendelési utasítás megad egy értéket, amely a tulajdonságban tárolható.

A Visual Basic átad egy paramétert az eljárásnak a Set tulajdonság-hozzárendelések során. Ha nem ad meg paramétert, Setaz integrált fejlesztési környezet (IDE) egy implicit paramétert valuehasznál. A paraméter tartalmazza a tulajdonsághoz rendelendő értéket. Ezt az értéket általában egy helyi magánváltozóban tárolja, és az eljárás meghívásakor Get adja vissza.

A tulajdonságdeklaráció törzse csak a tulajdonság Get és a tulajdonságkivonat és Set az End Property utasítás közötti eljárásokat tartalmazhatja. Ezen eljárásokon kívül nem tárolhat másokat. Különösen nem tudja tárolni a tulajdonság aktuális értékét. Ezt az értéket a tulajdonságon kívül kell tárolnia, mert ha valamelyik tulajdonságeljárásban tárolja, a másik tulajdonságeljárás nem fér hozzá. A szokásos módszer az érték tárolása egy olyan privát változóban, amely a tulajdonság azonos szintjén van deklarálva. Meg kell határoznia egy Set eljárást azon a tulajdonságon belül, amelyre vonatkozik.

Az Set eljárás alapértelmezés szerint az azt tartalmazó tulajdonság hozzáférési szintjére van bekapcsolva, hacsak nem használja accessmodifier az Set utasítást.

Szabályok

  • Vegyes hozzáférési szintek. Ha írási-olvasási tulajdonságot határoz meg, megadhat egy másik hozzáférési szintet az eljáráshoz vagy az GetSet eljáráshoz, de mindkettőhöz nem. Ha ezt teszi, az eljárás hozzáférési szintjének szigorúbbnak kell lennie, mint a tulajdonság hozzáférési szintje. Ha például a tulajdonság deklarálva Friendvan, deklarálhatja az Set eljárást Private, de nem Public.

    Ha egy tulajdonságot WriteOnly definiál, az eljárás a Set teljes tulajdonságot jelöli. Nem deklarálhat másik hozzáférési szintet a tulajdonsághoz Set, mert az két hozzáférési szintet állítana be a tulajdonsághoz.

Működés

  • Visszatérés egy tulajdonságeljárásból. Amikor az Set eljárás visszatér a hívó kódhoz, a végrehajtás a tárolandó értéket megadva az utasítást követve folytatódik.

    Settulajdonságeljárások a Visszatérési utasítás vagy a Kilépési utasítás használatával térhetnek vissza.

    Az Exit Property és Return az utasítások azonnali kilépést okoznak egy tulajdonságeljárásból. Tetszőleges számú Exit Property és Return utasítás jelenhet meg az eljárás bármely pontján, és keverheti és Return megadhatja Exit Property az utasításokat.

Példa

Az alábbi példa egy Set tulajdonság értékének beállításához használja az utasítást.

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

Lásd még