Egenskapsuttrykk

En egenskap, også kalt felt eller attributt, karakteriserer et gitt objekt eller informasjon. Egenskaper kan brukes til å kontrollere tilgang til data. Det er vanlig bruk å inkludere instruksjoner ved innstilling eller lesingstid for egenskaper. Kode kan variere fra enkel tildeling til komplekse kontekstavhengige rutiner. Ved å bruke Get-, Let- eller Set-tilgangselementer fremtvinges egenskapenes konsistens når det er nødvendig.

warning

Dette uttrykke krever at Option Compatible plasseres foran den kjørbare programkoden i en modul.


Syntaks:

Uttrykket Get Statement diagram

[Private | Public] Property Get name[char | As typename]
End Property

Uttrykket Angi Uttrykks-diagram

[Private | Public] Property [Let | Set] name[char] [([Optional [ByRef | ByVal]]value[char | As typename])] [As typename]
End Property

Parametre:

name: Egenskapsnavnet.

argument: Verdi som skal overføres til Property-Sett rutinen.

note

Egenskaps-innstillere bruker ofte et enkelt argument. Flere argumenter aksepteres likt.


argumentfragment

argumentfragment

{[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
Parametre

Valgfritt: Argumentet er ikke obligatorisk.

ByRef: Argumentet sendes via en referanse. ByRef som er standard.

ByVal: Argumentet sendes med verdi. Verdien kan endres av den anropte rutinen.

char: Skriv inn deklarasjonstegn.

typenavn: Primitivt datatypenavn. Bibliotek- eller moduldefinerte typer kan også spesifiseres.

= uttrykk: Spesifiser en standardverdi for argumentet som samsvarer med dens deklarerte type. Valgfritt er nødvendig for hvert argument som spesifiserer en standardverdi.

ParamArray: Bruk ParamArray når antallet parametere er ubestemt. Et typisk scenario er en Calc brukerdefinert funksjon. Bruk av ParamArray bør begrenses til det siste argumentet i en rutine.

tip

Bruk avParamArray eller = uttrykk krever at Option Compatible plasseres foran den kjørbare programkoden i en modul.


warning

Når du bruker Alternativ VBASupport 1, Valgfri argumenter uten standardverdi (= uttrykk) initialiseres i henhold til deres datatype, bortsett fra hvis Variant.


typenavn fragment

primitive datatypefragment

{Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
char fragment

skriv deklarasjonstegn

{ % | & | ! | # | $ | @ }

Eksempler

Option Compatible
Sub Main
    ProductName = "Office"
    Print ProductName ' viser "Collabora Office"
End Sub

Private _office As String
Property Get ProductName As String
    ProductName = _office
End Property
Property Let ProductName(value As String)
    _office = "Libre"& value
End Property
tip

I fravær av Property Let eller Property Set, hjelper Property Get med å definere beskyttet informasjon, som ikke ved et uhell kan endres av en utenforstående modul:


Option Compatible
Offentlig eiendom Få PathDelimiter As String ' Skrivebeskyttet variabel
    Static this As String
    If this = "" Then : Select Case GetGuiType()
        Case 1 : this = ";" ' Windows
        Case 4 : this = ":" ' Linux eller macOS
        Case Else: Feil 423 ' Egenskap eller metode ikke definert: PathDelimiter
    End Select : End If
    PathDelimiter = this
End Property ' skrivebeskyttet PathDelimiter

Sub Main
    PathDelimiter = "en setning" ' gjør ingenting
End Sub
note

Bruk Let eller Set når du håndterer UNO-tjenester eller klasseobjekter:


Option Compatible
Sub Main
    'Set anObject = CreateUnoService( "com.sun.star.frame.Desktop" )
    anObject = CreateUnoService( "com.sun.star.frame.Desktop" )
    Print anObject.SupportedServiceNames(0) ' displays "com.sun.star.frame.Frame"
End Sub

Property Get anObject As Object
    Set anObject = _obj
End Property

Private _obj As Object

'Property Set anObject(value As Object)
    'Set _obj = value.CurrentFrame
'End Property
Property Let anObject(value As Object)
    Set _obj = value.CurrentFrame
End Property

Supporter oss!