Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Grazie della tempestiva risposta ma devo obbiettare su dove si è andati a battere con essa.
Anche se il motivo che mi porta a pormi questa domanda deriva proprio da questa abitudine di chi implementa in VBA, il mio quesito riguarda qualcosa che avviene prima del CG.
A me interessa sapere se, una variabile_oggetto, uscita dal proprio ambito, viene settata automaticamente a Nothing.
Ripetendo in modo differente la stessa cosa:
la variabile_Oggetto, che porta con se il puntamento all' oggetto di cui è riferimento, una volta uscita dalla procedura, o, più in generale, uscita dal proprio ambito, viene, dal runtime (se così si chiama) settata a Nothing?
Io credo che la risposta possa essere solo di due tipi:
- Si. Sempre
- No. Mai
Poi, quello che succede DOPO, in questo topic non vorrei affrontarlo perché credo che i fraintendimenti, avvengano anche per questo motivo, perché si mette più carne al fuoco di quello di cui ci sia bisogno.
Mi sarei accontentato della guida in linea e credo anche quanto in essa c'è scritto sia sufficiente ma leggendola una secponda volt ami sono reso conto che sia la traduzione in italiano che l' originale inglese mancano di qualcosa . Nel senso che l' autorre di quello scritto, deve aver pensato qualcosa ma poi non lo ha scritto.
Oppure, quello che ha voluto scrivere non lo ha saputo fare in modo corretto.
Cito la guida in linea di Microsoft Office alla voce NOTHING (chiedo scusa se non l' ho fatto in topic ma esso è stato scritto da cellulare)
NOTHING
La parola chiave Nothing è utilizzata per annullare l'associazione tra una variabile oggetto e qualsiasi oggetto. Per assegnare Nothing a una variabile oggetto, utilizzare l'istruzione Set. Ad esempio:
Set MyObject = Nothing
È possible che diverse variabili oggetto facciano riferimento allo stesso oggetto. Quando si assegna la parola chiave Nothing a una variabile oggetto, tale variabile non si riferirà più ad alcun oggetto. Quando più variabili oggetto si riferiscono a uno stesso oggetto, la memoria e le risorse di sistema associate all'oggetto al quale si riferiscono le variabili saranno rilasciate solo dopo che tutte le variabili oggetto saranno state impostate su Nothing, in modo esplicito utilizzando Set, oppure in modo implicito dopo che l'ultima variabile oggetto impostata su Nothing non rientra più nell'area di validità.
con particolare attenzione all' ultima parte:
oppure in modo IMPLICITO dopo che l'ultima variabile oggetto IMPOSTATA su Nothing non rientra più nell'area di validità.
La prima cosa che ho capito è stata che:
Per non avere più nessun riferimento all' oggetto che sottostà alla variabile_oggetto o alle molteplici variabili_oggetto, ho due possibilità:
- Settarle personalmente, quindi esplicitamente, a nothing attraverso l' utilizzo di SET, una normale assegnazione insomma.
- Oppure, lasciarle uscire dall' ambito di validità di modo che fosse il sistema a tagliare i ponti con l' oggetto. Di fatto, usciti dalla validità, la varabile_oggetto viene settata a Nothing o, magari, del tutto eliminata.
Credo non sia una cosa stupida credere che:
o avviene SEMPRE
o non avviene MAI
Perchè non sono le variabili_oggetto, i lmotivo di malfunzionamenti (ricollegandomi alla solita tiritera sul CG che non fa bene il suo mestiere), ma gli oggetti stessi che non sono, forse, stati implementati in modo corretto e quindi mancano di un processo per essere "disposti", come un metodo Dispose o un metoto Quit, per esempio, oppure, l' implementatore, ha dimenticato di utilizzarli nelle sedi opportune del programma.
a titolo di completezza anche se non riesco a dirti dove l' ho letto nele varie ricerche sulla guida (alla voce "Vita utile delle variabili" non lo leggo)... comunque, la guida in linea specifica, anche che per rilasciare gli oggetti utilizzati, non esiste un metodo comune ma va identificato attraverso la documentazione di quel dato oggetto.
....
Mi rendo conto che ho sforato fuori dall' argomento anche io. Effetivamente, però, ho avuto bisogno di aggiungere qualcosina anche oltre al mio quesito per poter, spero, riuscire a spiegarmi il meglio che posso.
Grazie ancora delal gentile attenzione.
Ora sono di corsa ma andrò a leggere i link che mi hai consigliato non appena mi libero dagli impegni che ho (credo gia domani)