La questione fondamentale risiede nella differenza in tale contesto fra "
Statico" e "
Dinamico".
Data l'importanza dell'argomento Boege avrebbe dovuto spendere qualche parola in più per specificare e chiarire il significato di quelle due accezioni in Gambas.
Ad ogni modo mi pare che il nucleo del suo ragionamento sia il seguente:
"
Now, a module is a normal class in which every symbol is implicitly madestatic by the compiler.
You can still create objects from a module but thatisn't useful because you don't have dynamic symbols
in a module. You will just end up with multiple objects that all reference the same data. "
combinato con queste righe del suo esempio:
Dim x As New Mod
......
Mod.A = 12
x.Func()
Mod.Func()
Si ha dunque che è possibile creare regolarmente
Istanze individuali, singoli Oggetti di un
Modulo mediante la parola-chiave "
New"; ma i
Simboli delle
Istanze di un
Modulo non sono suscettibili di diretta lettura né di assegnazione diretta di valori, restando questa caratteristica una prerogativa del
Modulo, del quale quegli
Oggetti sono
Istanze.
In ciò si sostanzia l'affermazione di Boege per cui la creazione di
Istanze individuali di un
Modulo "
that isn't useful", ossia non possiede alcuna
utilità pratica.
Provate infatti ad aggiungere e provare queste righe:
......
x.A = 1990
Print x.A
Mod.Func()
......