Proprietà array
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

Alcuni tipi di dati non sono permessi come membri Public di una classe, provando ad inserirli avremo il messaggio:
"Costanti, stringhe di lunghezza fissa, matrici, tipi definiti dall'utente, e istruzioni declare non ammessi come membri public di modili di oggetto"
E' il caso delle variabili Array.
Fino ad ora abbiamo visto come usare Get e Set per impostare i valori di una (o più proprietà) di una classe: l'esempio sotto ci mostra come sia possibile utilizzarli anche per impostare i valori di un vettore.

Private pFormato() As String

Private Sub Class_Initialize()
  ReDim pFormato(5)
End Sub

Property Get Formato(ByVal i As Integer) As String
  Formato = pFormato(i)
End Property

Property Let Formato(ByVal i As Integer, vFormato As String)
  pFormato(i) = vFormato
End Property

Private Sub Class_Terminate()
    Erase pFormato
End Sub

La gestione di una proprietà Array ci permette di vedere anche come la gestione di una classe possa essere "trasparente" all'esterno.
Nel nostro esempio la proprietà pFormato ha 6 elementi fissi, darebbe un errore se cercassimo di impostare l'emento con indice 6, ma modificando il codice di Let come nel'esempio sotto la dimensione del vettore aumenterà in modo "automatico" e trasparente per l'utilizzatore della classe.
Property Let Formato(index, vFormato As String)
  If (index > UBound(pFormato)) Then
    ReDim Preserve pFormato(index+5)
  End If
  
  pFormato(index) = vFormato
End Property


In modo del tutto analogo potremmo scrivere le funzioni Get e Set se la proprietà fosse una matrice.
Private pFormato() As String

Private Sub Class_Initialize()
  ReDim pFormato(5, 5)
End Sub

Public Property Get Formato(ByVal i As Integer, ByVal j As Integer) As String
    Formato = pFormato(i, j)
End Property

Public Property Let Formato(ByVal i As Integer, ByVal j As Integer, vFormato As String)
    pFormato(i, j) = vFormato
End Property

Private Sub Class_Terminate()
    Erase pFormato
End Sub
 

data4idea srls - PIva 01881000937 - info@data4idea.it