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.
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
Geteljá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
Seteljá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 (Set) vagy írásvédett (Utasítás beállítása) esetén önállóan is definiálhat eljárásokat.
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.
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 fullNamemutatja 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