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 "LibreOffice"
      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!