Tulajdonságeljárások (Visual Basic)
A tulajdonságeljárás olyan Visual Basic-utasítások sorozata, amelyek egy modul, osztály vagy struktúra egyéni tulajdonságát módosítják. A tulajdonságeljárásokat tulajdonságkiegészítőknek is nevezik.
A Visual Basic a következő tulajdonságeljárásokat biztosítja:
- Az
Get
eljárás egy tulajdonság értékét adja vissza. Ezt akkor hívjuk meg, ha egy kifejezésben éri el a tulajdonságot. - Az
Set
eljárás egy tulajdonságot értékre állít be, beleértve egy objektumhivatkozást is. Ez akkor lesz meghívva, ha értéket rendel hozzá a tulajdonsághoz.
A tulajdonságeljárásokat általában párokban, az és az Get
utasítások használatával definiálja, de a tulajdonság írásvédett (Utasítás lekérése) vagy írásvédett (Utasítás beállítása) esetén önállóan is definiálhat eljárásokat.Set
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.
Az osztályokban, struktúrákban és modulokban definiálhat tulajdonságokat. A tulajdonságok alapértelmezés szerint azok Public
, ami azt jelenti, hogy az alkalmazás bármely pontjáról meghívhatja őket, amely hozzáfér a tulajdonság tárolójához.
A tulajdonságok és változók összehasonlítása a Visual Basic tulajdonságok és változók közötti különbségei című témakörben olvasható.
Deklaráció szintaxisa
Magát a tulajdonságot egy kódblokk határozza meg, amely a tulajdonságkimutatásban és az utasításban End Property
található. Ebben a blokkban minden tulajdonságeljárás belső blokkként jelenik meg egy deklarációs utasítás (Get
vagy Set
) és az egyező End
deklaráció között.
A tulajdonság deklarálásának és eljárásainak szintaxisa a következő:
[Default] [Modifiers] Property PropertyName[(ParameterList)] [As DataType]
[AccessLevel] Get
' Statements of the Get procedure.
' The following statement returns an expression as the property's value.
Return Expression
End Get
[AccessLevel] Set[(ByVal NewValue As DataType)]
' Statements of the Set procedure.
' The following statement assigns newvalue as the property's value.
LValue = NewValue
End Set
End Property
' - or -
[Default] [Modifiers] Property PropertyName [(ParameterList)] [As DataType]
Megadhatja Modifiers
a hozzáférési szintet és a túlterheléssel, felülbírálással, megosztással és árnyékolással kapcsolatos információkat, valamint azt, hogy a tulajdonság írásvédett vagy írásvédett-e. A AccessLevel
helyszíni Get
vagy Set
az eljárás bármely olyan szint lehet, amely szigorúbb, mint a tulajdonsághoz megadott hozzáférési szint. További információ: Tulajdonságkivonat.
Adattípus
A tulajdonság adattípusa és egyszerű hozzáférési szintje az Property
utasításban van meghatározva, nem a tulajdonságeljárásokban. Egy tulajdonságnak csak egy adattípusa lehet. Például nem definiálhat olyan tulajdonságot, amely egy értéket tárol Decimal
, de beolvassa az Double
értéket.
Hozzáférési szint
Meghatározhat azonban egy egyszerű hozzáférési szintet egy tulajdonsághoz, és tovább korlátozhatja a hozzáférési szintet az egyik tulajdonságeljárásban. Definiálhat például egy tulajdonságot Public
, majd meghatározhat egy Private Set
eljárást. Az Get
eljárás továbbra is megmarad Public
. A hozzáférési szintet csak egy tulajdonság eljárásában módosíthatja, és csak a fő hozzáférési szintnél szigorúbbá teheti. További információ : A vegyes hozzáférési szinteket tartalmazó tulajdonság deklarálása.
Paraméterdeklaráció
Az egyes paramétereket ugyanúgy deklarálja, mint az aleljárások esetében, azzal a kivételével, hogy az átengedési mechanizmusnak kell lennieByVal
.
A paraméterlistában szereplő paraméterek szintaxisa a következő:
[Optional] ByVal [ParamArray] parametername As datatype
Ha a paraméter nem kötelező, a deklaráció részeként meg kell adnia egy alapértelmezett értéket is. Az alapértelmezett érték megadásának szintaxisa a következő:
Optional ByVal parametername As datatype = defaultvalue
Tulajdonságérték
Get
Egy eljárásban a visszaadott érték a hívó kifejezésnek lesz megadva a tulajdonság értékeként.
Set
Az eljárás során az új tulajdonság értéke az utasítás paraméterének Set
lesz átadva. Ha explicit módon deklarál egy paramétert, a tulajdonsággal azonos adattípussal kell deklarálnia. Ha nem deklarál egy paramétert, a fordító az implicit paraméterrel Value
jeleníti meg a tulajdonsághoz hozzárendelendő új értéket.
Hívás szintaxisa
Implicit módon meghív egy tulajdonságeljárást a tulajdonságra való hivatkozással. A tulajdonság nevét ugyanúgy kell használnia, mint egy változó nevét, azzal a kivételrel, hogy minden olyan argumentumhoz meg kell adnia értékeket, amelyek nem kötelezőek, és zárójelben kell csatolnia az argumentumlistát. Ha nincs megadva argumentum, kihagyhatja a zárójeleket.
Az eljárás implicit hívásának Set
szintaxisa a következő:
propertyname[(argumentlist)] = expression
Az eljárás implicit hívásának Get
szintaxisa a következő:
lvalue = propertyname[(argumentlist)]
Do While (propertyname[(argumentlist)] > expression)
Deklaráció és hívás illusztrációja
A következő tulajdonság egy teljes nevet tárol két összetevőnévként, az utónevet és a vezetéknevet. Amikor a hívó kód beolvassa fullName
, az Get
eljárás egyesíti a két összetevőnevet, és visszaadja a teljes nevet. Amikor a hívó kód új teljes nevet rendel hozzá, az Set
eljárás megpróbálja két összetevőnévre bontani. Ha nem talál szóközt, az összeset utónévként tárolja.
Dim firstName, lastName As String
Property fullName() As String
Get
If lastName = "" Then
Return firstName
Else
Return firstName & " " & lastName
End If
End Get
Set(ByVal Value As String)
Dim space As Integer = Value.IndexOf(" ")
If space < 0 Then
firstName = Value
lastName = ""
Else
firstName = Value.Substring(0, space)
lastName = Value.Substring(space + 1)
End If
End Set
End Property
Az alábbi példa a következő tulajdonság eljárásainak tipikus hívásait fullName
mutatja be:
fullName = "MyFirstName MyLastName"
MsgBox(fullName)
Lásd még
- Eljárások
- Függvények eljárásai
- Operátori eljárások
- Eljárásparaméterek és argumentumok
- Különbségek a Visual Basic tulajdonságai és változói között
- Útmutató: Tulajdonság létrehozása
- Útmutató: Tulajdonság eljárásának meghívása
- Útmutató: Alapértelmezett tulajdonság deklarálása és meghívása a Visual Basicben
- Útmutató: Érték elhelyezése egy tulajdonságban
- Útmutató: Érték lekérése egy tulajdonságból
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: