Tulajdonságutasítás

Deklarálja egy tulajdonság nevét, valamint a tulajdonság értékének tárolására és lekérésére használt tulajdonságeljárásokat.

Syntax

[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

Részek

  • attributelist

    Opcionális. A tulajdonságra vagy GetSet eljárásra vonatkozó attribútumok listája. Lásd: Attribútumlista.

  • Default

    Opcionális. Megadja, hogy ez a tulajdonság annak az osztálynak vagy struktúranak az alapértelmezett tulajdonsága, amelyen definiálva van. Az alapértelmezett tulajdonságoknak el kell fogadniuk a paramétereket, és a tulajdonságnév megadása nélkül is beállíthatók és lekérhetők. Ha a tulajdonságot Defaultúgy deklarálja, hogy nem használható Private a tulajdonságon vagy annak egyik tulajdonságeljárásán.

  • accessmodifier

    Az utasításon Property és legfeljebb az Get egyik utasításon Set nem kötelező. A következők egyike lehet:

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

  • propertymodifiers

    Opcionális. A következők egyike lehet:

  • Shared

    Opcionális. Lásd: Megosztott.

  • Shadows

    Opcionális. Lásd: Árnyékok.

  • ReadOnly

    Opcionális. Lásd: ReadOnly.

  • WriteOnly

    Opcionális. Lásd: WriteOnly.

  • Iterator

    Opcionális. Lásd : Iterator.

  • name

    Szükséges. A tulajdonság neve. Lásd: Deklarált elemnevek.

  • parameterlist

    Opcionális. A tulajdonság paramétereit képviselő helyi változónevek és az Set eljárás lehetséges további paramétereinek listája. Lásd: Paraméterlista.

  • returntype

    Ha igen, akkor Option Strict kötelező Onmegadni. A tulajdonság által visszaadott érték adattípusa.

  • Implements

    Opcionális. Azt jelzi, hogy ez a tulajdonság egy vagy több tulajdonságot implementál, amelyek mindegyike a tulajdonság osztályát vagy szerkezetét tartalmazó felületében van definiálva. Lásd: Implements Utasítás.

  • implementslist

    Implements Ha meg van adva, kötelező megadni. A megvalósítandó tulajdonságok listája.

    implementedproperty [ , implementedproperty ... ]

    Mindegyik implementedproperty a következő szintaxist és részeket tartalmazza:

    interface.definedname

    Része Leírás
    interface Szükséges. A tulajdonság által megvalósított felület neve, amely osztályt vagy struktúrát tartalmaz.
    definedname Szükséges. Az a név, amellyel a tulajdonság definiálva van.interface
  • Get

    Opcionális. Kötelező, ha a tulajdonság meg van jelölve ReadOnly. Elindít egy Get tulajdonság eljárást, amely a tulajdonság értékének visszaadására szolgál. Az Get utasítás nem használható automatikusan implementált tulajdonságokkal.

  • statements

    Opcionális. Az eljáráson belül GetSet futtatandó utasítások blokkja.

  • End Get

    Leállítja a tulajdonságeljárást Get .

  • Set

    Opcionális. Kötelező, ha a tulajdonság meg van jelölve WriteOnly. Elindít egy Set tulajdonság eljárást, amely a tulajdonság értékének tárolására szolgál. Az Set utasítás nem használható automatikusan implementált tulajdonságokkal.

  • End Set

    Leállítja a tulajdonságeljárást Set .

  • End Property

    Leállítja a tulajdonság definícióját.

Megjegyzések

A Property nyilatkozat bemutatja egy tulajdonság deklarációját. Egy tulajdonság rendelkezhet eljárással Get (csak olvasható), eljárással Set (írási és írási) vagy mindkettővel (írásvédett). Az automatikusan implementált tulajdonság használatakor kihagyhatja az eljárást és Set az Get eljárást. További információ: Automatikusan implementált tulajdonságok.

Csak osztályszinten használható Property . Ez azt jelenti, hogy egy tulajdonság deklarációs környezetének osztálynak, struktúrának, modulnak vagy interfésznek kell lennie, és nem lehet forrásfájl, névtér, eljárás vagy blokk. További információ: Deklarációs környezetek és alapértelmezett hozzáférési szintek.

Alapértelmezés szerint a tulajdonságok nyilvános hozzáférést használnak. A tulajdonság hozzáférési szintjét egy hozzáférési módosítóval módosíthatja az Property utasításban, és igény szerint módosíthatja az egyik tulajdonságeljárását egy szigorúbb hozzáférési szintre.

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. Ez 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.

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 vagy több tulajdonságot ReadOnly határoz meg, az egyetlen tulajdonság eljárása (Getvagy Set) az összes tulajdonságot jelöli.WriteOnly Ilyen eljáráshoz nem deklarálhat másik hozzáférési szintet, mert ez két hozzáférési szintet állítana be a tulajdonsághoz.

  • Visszatérési típus. Az Property utasítás deklarálhatja a visszaadott érték adattípusát. Bármilyen adattípust vagy enumerálás, struktúra, osztály vagy felület nevét megadhatja.

    Ha nem adja meg returntype, a tulajdonság visszaadja Object.

  • Végrehajtása. Ha ez a tulajdonság a kulcsszót Implements használja, az azt tartalmazó osztálynak vagy struktúrának közvetlenül az utasítást követő Structure utasítással kell rendelkeznie ImplementsClass. Az Implements utasításnak tartalmaznia kell a megadott interfészeket implementslist. Az interfész által definiált Property (in definedname) névnek azonban nem kell megegyeznie a tulajdonság nevével (in name).

Működés

  • Visszatérés egy tulajdonságeljárásból. Amikor az Get eljárás Set visszatér a hívó kódhoz, a végrehajtás a meghívott utasítást követő utasítással folytatódik.

    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.

  • Visszaadott érték. Ha egy értéket egy eljárásból Get szeretne visszaadni, hozzárendelheti az értéket a tulajdonság nevéhez, vagy belefoglalhatja egy Return utasításba. Az alábbi példa a visszatérési értéket a tulajdonság nevéhez quoteForTheDay rendeli, majd az utasítást használja a Exit Property visszatéréshez.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            QuoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    Ha érték namehozzárendelése nélkül használjaExit Property, az eljárás a Get tulajdonság adattípusának alapértelmezett értékét adja vissza.

    Az Return utasítás ugyanakkor hozzárendeli az eljárás visszatérési Get értékét, és kilép az eljárásból. Az alábbi példa ezt mutatja be.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

Példa

Az alábbi példa egy tulajdonságot deklarál egy osztályban.

Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property Prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

Lásd még