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. Akkor nevezzük ezt, amikor egy kifejezésben elérjük 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, a Get és Set utasítások használatával definiálja, de ha a tulajdonság csak olvasható (Get utasítás) vagy csak írható (Set utasítás), akkor az eljárásokat külön is definiálhatja.
Amikor automatikusan implementált tulajdonságot használ, kihagyhatja a Get és 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, valamint az árnyékolással kapcsolatos információkat, továbbá azt is, hogy a tulajdonság csak olvasható vagy csak írható-e. A AccessLevelGet vagy Set eljárás lehet bármilyen szintű, 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 Decimal értéket tárol, de Double értéket olvas vissza.
Hozzáférési szint
Meghatározhat azonban egy alapértelmezett hozzáférési szintet egy tulajdonsághoz, és tovább korlátozhatja a hozzáférési szintet a tulajdonság eljárásai közül az egyikben. 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őbb hozzáférési szintnél korlátozottabbá 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 implicit Set eljáráshívás szintaxisa a következő:
propertyname[(argumentlist)] = expression
Az Get eljárás implicit hívásának 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 keresztné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 fullName tulajdonsági eljárások tipikus hívásait mutatja be:
fullName = "MyFirstName MyLastName"
MsgBox(fullName)
Lásd még
- Eljárások
- Függvényeljárások
- 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