In VB.NET, procedura proprietate reprezinta secventa de cod sursa de manipulare a unei caracteristici intr-un modul […], clasa de obiecte […] sau structura […].
VB.NET pune la dispozitie urmatoarele proceduri de tip proprietate:
- Get: returneaza valoarea caracteristicii; caracteristica este accesata printr-o expresie;
- Set: stabileste valoarea caracteristicii, incluzand referinta de obiect; este invocata pentru atribuirea unei valori pentru o proprietate.
Proprietatile sunt definite in perechi de proceduri Get si Set, dar nu obligatoriu. Pot exista definite doar proprietati Get sau proprietati Set.
Implicit, proprietatile au asociat modificatorul de acces Public […], ceea ce inseamna ca pot fi apelate din orice punct al aplicatiei. Mecanismul de transfer al parametrilor este cel prin valoare implementat prin specificatia ByVal.
Implementarea proprietatilor se realizeaza prin specificatiile Property si End Property. Get si Set se definesc in mod similar procedurilor […].
Dim a As Integer Property aProp() Get Return a End Get Set(ByVal value) If value < 0 Then a = 0 Else a = value End If End Set End Property
Exemplul de mai sus creeaza o proprietate read/write. Proprietatea Get extrage valoarea variabilei a, iar proprietatea Set asociaza variabilei a o valoarea stocata de parametrul value, in functie de valoarea acestui parametru.
O proprietate este invocata atunci cand denumirea acesteia apare intr-o expresie, in mod similar utilizarii unei variabile. De exemplu, procedura Get este invocata astfel:
... a = 10 Dim x As Integer x = aProp MsgBox("x=" & x) ...
Se observa ca viaribila a este referita direct prin atribuirea:
a = 10
Valoarea lui a poate fi schimbata si prin intermediul urmatoarei secvente de cod sursa:
... x = x + 13 aProp = x MsgBox("a=" & aProp) MsgBox("a=" & a) ...
Efectul executiei codului sursa de mai sus consta in modificarea valorii variabilei a prin invocarea implicita a proprietatii Set. Cele doua apeluri ale MsgBox au acelasi efect, respectiv afisarea noii valori a variabilei a prin invocarea proprietatii Get, respectiv prin referirea directa a variabilei a.