Turinys

# Property Statement

Savybė, dar vadinama lauku arba atributu, apibūdina nurodytą objektą ar informacijos dalį. Savybės gali būti naudojamos prieigai prie duomenų valdyti. Paprastai naudojamas nurodymas nustatant ar skaitant savybių laiką. Kodas gali skirtis nuo paprasto priskyrimo iki sudėtingų, nuo konteksto priklausomų, paprogramių. Naudodamiesi Get, Let arba Set prieigomis, jei reikia, užtikrinamas savybių nuoseklumas.

Šiam sakiniui reikia Parinčių suderinamumo, kuris turi būti modulyje prieš vykdomą programos kodą.

### Sintaksė:

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

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

### Parametrai:

name: Savybės pavadinimas.

argument: Reikšmė, kuri perduodama savybės paprogramei.

Property naudoja dažniausiai vieną argumentą. Daugybiniai argumentai taip pat galimi.

##### argumentų fragmentas

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

##### Parametrai

Pasirenkama: Argumentas neprivalomas.

ByRef: Argumentas perduodamas nuoroda. ByRef yra numatytasis.

ByVal: Argumentas perduodamas reikšme. Kviečiančioji paprogramė gali modifikuoti jo reikšmę.

char: Simbolinio tipo apibrėžimas.

tipo vardas: Paprastojo duomenų tipo vardas. Bibliotekos ar modulio apibrėžti tipai taip pat gali būti specifikuojami.

= reiškinys: Nurodykite numatytąją argumento reikšmę, atitinkančią apibrėžtą tipą.Optional būtina nurodyti kiekvienam argumentui parenkant numatytąją reikšmę.

ParamArray: Naudokite ParamArray, kai parametrų skaičius nenusakytas. Pavyzdys yra „Calc“ vartotojo aprašyta funkcija. Naudojamas ParamArray turi būti taikomas paskutiniam paprogramės argumentui.

NaudojantParamArray arba = reiškinys būtina modulyje prieš vykdomos programos kodą įdėti Parinkties suderinamumas.

Kai naudojama Option VBASupport 1 Pasirinktinai, tai argumentai, neturintys numatytųjų reikšmių, (= expression) inicinializuojami pagal jų duomenų tipą, išskyrus esant Variantas.

##### tipo vardo fragmentas

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

##### simbolio fragmentas

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

## Pavyzdžiai

          Option Compatible
          Sub Main
              ProductName = "Office"
              Print ProductName ' rodoma "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

Jei nėra savybės Let arba savybės Set, savybė Get padeda aprašyti laikomą informaciją, kurios svetimas modulis negali netyčia pakeisti:

          Option Compatible
          Viešoji savybė „PathDelimiter As String“ tik skaitymui kintamasis
              Static this As String
              If this = "" Then : Select Case GetGuiType()
                  Case 1 : this = ";" ' Windows
                  Case 4 : this = ":" ' Linux arba macOS
                  Case Else : Error 423 ' Savybė arba metodas neapibrėžtas: PathDelimiter
              End Select : End If
              PathDelimiter = this
          End Property ' tik skaityti PathDelimiter

          Sub Main
              PathDelimiter = "sakinys" ' nieko nedaro
          End Sub

Naudokite Let arba Set, kai apdorojate UNO paslaugas arba klasių objektus:

          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

Susijusios temos

Subroutines basics

Using Procedures, Functions and Properties

Function Statement

Sub sakinys

End, Exit sakiniai

ClassModule parinkties sakinys

Suderinamumo parinkties sakinys

Paremkite mus!