Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
Un limite davvero pesante, noioso e del tutto ingiustificato è
quello imposto dall'impossibilità di dichiarare un array
pubblico di qualsiasi tipo all'interno di un modulo di oggetto, quale
un Form. Public arr1(2, 1) As String
Vedremo in quest'articolo come superare questo limite che avrà creato delle grane a più di una persona, senza obbligare il programmatore a porre tali dati all'interno di un modulo standard. Accontentiamo il compilatore e dichiariamo tale vettore con Private, rendendolo quindi inaccessibile dall'esterno. Per consentire l'uso indiretto dell'array da parte di altre parti del codice utilizzeremo una proprietà wrapper in lettura e scrittura che maneggi i dati del vettore come se fossero accessibili direttamente dall'esterno. Sviluppiamo un progettino composto da due soli form, senza interfaccia. Il primo form conterrà l'array privato e la proprietà pubblica.
La proprietà in questione si chiama Array1 e richiede il passaggio di due argomenti, corrispondenti alle due dimensioni dell'array arr1. La proprietà in lettura (righe 4-6) recupera i dati dall'array utilizzando i due indici forniti alla proprietà e li restituisce in uscita, mentre la proprietà in scrittura (righe 8-10) effettua l'operazione inversa. Nota
bene!
Aggiungiamo un paio di righe giusto per effettuare un controllo di funzionamento:
Le righe 13-18 inizializzano l'array all'interno del primo form con dei
valori. All'interno del secondo form abbiamo un codice ancora più semplice:
Al caricamento del form viene inizialmente presentato un valore della
matrice nel primo form (dimostrando quindi la possibilità di leggerne
i valori), corrispondente a "Ciccio". Alla riga
5 tale valore è modificato in "Ciccino"
(dimostrando quindi la possibilità di modificare i valori). Alla
riga 6 lo stesso valore è riletto (per dimostrare ancora l'avvenuta
scrittura).
|
La stessa soluzione può essere applicata per accedere a variabili e stringhe a lunghezza fissa. Non si tratta di un'idea geniale per evitare una limitazione del linguaggio. È piuttosto l'applicazione di un concetto di base della programmazione ad oggetti ed in linea generale teorica nessun dato all'interno di una classe dovrebbe essere accessibile dall'esterno se non mediante l'uso di un metodo o di una proprietà della classe stessa. Fibia
FBI
|
Torna all'indice degli HowTo |