Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
attributelistOpcionális. A tulajdonságra vagy
GetSeteljárásra vonatkozó attribútumok listája. Lásd: Attribútumlista.DefaultOpcioná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óPrivatea tulajdonságon vagy annak egyik tulajdonságeljárásán. Példák és részletes útmutatás : Útmutató: Alapértelmezett tulajdonság deklarálása és meghívása a Visual Basicben.accessmodifierAz utasításon
Propertyés legfeljebb azGetegyik utasításonSetnem kötelező. A következők egyike lehet:Lásd a Visual Basic hozzáférési szintjeinek megtekintését.
propertymodifiersOpcionális. A következők egyike lehet:
MustOverride OverridesNotOverridable Overrides
SharedOpcionális. Lásd: Megosztott.
ShadowsOpcionális. Lásd: Árnyékok.
ReadOnlyOpcionális. Lásd: ReadOnly.
WriteOnlyOpcionális. Lásd: WriteOnly.
IteratorOpcionális. Lásd : Iterator.
nameSzükséges. A tulajdonság neve. Lásd: Deklarált elemnevek.
parameterlistOpcionális. A tulajdonság paramétereit képviselő helyi változónevek és az
Seteljárás lehetséges további paramétereinek listája. A paraméteres tulajdonságokat gyakran használják olyan indexelők vagy alapértelmezett tulajdonságok létrehozására, amelyek lehetővé teszik a gyűjteményszerű hozzáférést. Lásd: Paraméterlista és útmutató: Alapértelmezett tulajdonság deklarálása és meghívása a Visual Basicben.returntypeHa igen, akkor
Option StrictkötelezőOnmegadni. A tulajdonság által visszaadott érték adattípusa.ImplementsOpcioná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.
implementslistImplementsHa meg van adva, kötelező megadni. A megvalósítandó tulajdonságok listája.implementedproperty [ , implementedproperty ... ]Mindegyik
implementedpropertya következő szintaxist és részeket tartalmazza:interface.definednameRész Leírás interfaceSzükséges. A tulajdonság által megvalósított felület neve, amely osztályt vagy struktúrát tartalmaz. definednameSzükséges. Az a név, amellyel a tulajdonság definiálva van. interfaceGetOpcionális. Kötelező, ha a tulajdonság meg van jelölve
ReadOnly. Elindít egyGettulajdonság eljárást, amely a tulajdonság értékének visszaadására szolgál. AzGetutasítás nem használható automatikusan implementált tulajdonságokkal.statementsOpcionális. Az eljáráson belül
GetSetfuttatandó utasítások blokkja.End GetLeállítja a tulajdonságeljárást
Get.SetOpcionális. Kötelező, ha a tulajdonság meg van jelölve
WriteOnly. Elindít egySettulajdonság eljárást, amely a tulajdonság értékének tárolására szolgál. AzSetutasítás nem használható automatikusan implementált tulajdonságokkal.End SetLeállítja a tulajdonságeljárást
Set.End PropertyLeá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 Get az Set 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 vegyes hozzáférési szintek részletes példáiért lásd: Hogyan: Tulajdonság deklarálása vegyes hozzáférési szintekkel.
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
GetSeteljá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álvaFriendvan, deklarálhatja azSeteljárástPrivate, de nemPublic.Ha egy vagy több tulajdonságot
ReadOnlyhatároz meg, az egyetlen tulajdonság eljárása (WriteOnlyvagyGet) az összes tulajdonságot jelöli.SetIlyen 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
Propertyutasí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 visszaadjaObject.Végrehajtás. Ha ez a tulajdonság a kulcsszót
Implementshasználja, az azt tartalmazó osztálynak vagy struktúrának közvetlenül az utasítást követőImplementsutasítással kell rendelkeznieClassStructure. AzImplementsutasításnak tartalmaznia kell a megadott interfészeketimplementslist. Az interfész által definiáltProperty(indefinedname) névnek azonban nem kell megegyeznie a tulajdonság nevével (inname).
Működés
Visszatérés egy tulajdonságeljárásból. Amikor az
GeteljárásSetvisszaté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ésReturnaz utasítások azonnali kilépést okoznak egy tulajdonságeljárásból. Tetszőleges számúExit PropertyésReturnutasítás jelenhet meg az eljárás bármely pontján, és keverheti ésExit PropertymegadhatjaReturnaz utasításokat.Visszaadott érték. Ha egy értéket egy eljárásból
Getszeretne visszaadni, hozzárendelheti az értéket a tulajdonság nevéhez, vagy belefoglalhatja egyReturnutasításba. Az alábbi példa a visszatérési értéket a tulajdonság nevéhezquoteForTheDayrendeli, majd az utasítást használja aExit Propertyvisszatéréshez.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End PropertyHa érték
Exit Propertyhozzárendelése nélkül használjaname, az eljárás aGettulajdonság adattípusának alapértelmezett értékét adja vissza.Az
Returnutasítás ugyanakkor hozzárendeli az eljárás visszatérésiGeté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
Paraméteres tulajdonságok
Az alábbi példa bemutatja, hogyan hozhat létre paraméteres tulajdonságot, más néven indexelőt, amely tömbszerű hozzáférést tesz lehetővé egy gyűjteményhez:
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
A tulajdonsághasználatra vonatkozó átfogó példákért, beleértve az automatikus megvalósítást, a vegyes hozzáférési szinteket és az érvényesítési forgatókönyveket, tekintse meg a tulajdonságeljárásokat.
Lásd még
Tulajdonságtípusok és szolgáltatások
Speciális tulajdonságforgatókönyvek
- Útmutató: Alapértelmezett tulajdonság deklarálása és meghívása a Visual Basicben
- Útmutató: Vegyes hozzáférési szintű tulajdonság deklarálása