Queste che seguono sono possibili istruzioni che si possono incontrare in talune routines:
Addirittura è possibile incontrarle anche nella stessa routine.
In esse vengono usati "Nothing " e "IsEmpty". Entrambe danno la sensazione di voler esaminare o porre qualcosa nella condizione di vuoto, nullo.
Tuttavia c'è una sostanziale differenza tra i due tipi di istruzioni. E' come, se tra i comuni mortali, si parlasse di una casa:
un conto è chiedersi se la casa esiste ed un altro è chiedersi se nella casa c'è qualcuno.
In una determinata località una casa (il contenitore) può esserci o no e, se c'è, può essere distrutta per creare spazio sul territorio (Nothing).
Solo se la casa esiste può essere abitata o non abitata (IsEmpty) da persone (il contenuto).
Immaginiamo ancora per un attimo se mai ci potesse venire in mente di controllare la presenza di qualche persona in una casa che non esiste: prima consideriamo l'idea se la casa esiste e solo dopo averne constatata l'esistenza ne cerchiamo gli eventuali abitanti.
La parola chiave "Nothing " può essere usata per controllare se un oggetto (il contenitore) esiste (If VarOggetto Is Nothing) o per distruggerlo (Set VarOggetto = Nothing), quindi liberare la memoria.
La funzione "IsEmpty" verifica se l'oggetto, già esistente, contiene o meno qualche valore (il contenuto) (If IsEmpty(VarOggetto)) o ne cancella il contenuto (VarOggetto = Empty).
ATTENZIONE: la funzione "IsEmpty" si applica a qualsiasi variabile, non solo a quelle che si riferiscono ad oggetti, contrariamente a "Nothing " che si applica solo a variabili-oggetto.
Questo può essere un ulteriore test da eseguire su una variabile di tipo Variant:
Indica se la variabile sottoposta al test contiene semplicemente uno 0 (zero) o una stringa vuota (""), o se contiene un valore significativo.
Ora, forse, possiamo comprendere che diversa è la creazione di un contenitore dal suo contenuto, come diversa è la la sua distruzione dallo svuotamento.
Un oggetto inesistente non può essere riempito.
Un oggetto anche se vuoto continua ad occupare spazio in memoria.
Si libera spazio in memoria solo con la distruzione dell'oggetto.
Questo che segue è un piccolo test ed esempio che ho preparato per l'occorrenza. L'esempio è banale e non ha alcun senso usarlo così come si presenta. Tuttavia è possibile prelevare da questo le singole istruzioni ed adattarle nei nostri codici.
Con questo vi auguro buon lavoro.