Newsgroup: it.comp.lang.visual-basic
Titolo: VB.net 2008... Visibilità variabili....dubbio !

Giro a vuoto....lo sò ma non me lo ricordo!...quindi è come se non lo
sapessi!
Vb.net 2008
Variabile
Dim pippo as string="abc"
Vorrei che questa variabile fosse disponibile per TUTTA l'applicazione
(anche se fa uso del threading) MA NON
accessibile da un programma esterno...se la devono gestire solo il/o
gli assembly dell'applicazione
...ne da una istanza ulteriore del programma :
se l'uTonto si lancia due volte l'applicazione
il Pippo di App1....se ne frega del Pippo di app2
Public pippo non va bene....accedo dall'esterno
Shared pippo nemmeno
Public protected...ma dovrei istanziare la classe contenente pippo
all'inizio e derivare tutto da quella?
Ho una amnesia totale......sorry! ...è il momento di staccare....

 ha scritto nel messaggio 
news:7ccc60ff-121a-441a...@y14g2000yqm.googlegroups.com...

Mi sa che mi sfugge qualcosa... da quando in qua una variabile Shared è 
condivisa tra 2 istanze di uno stesso programma (quindi 2 processi diversi)?
Raf 

 gli assembly dell'applicazione
dichiarala Friend all'interno di un modulo Friend, o anche Shared
all'interno di una classe Friend

Per rafunk e Luca D....
la shared no...fra processi no........ma mi son espresso male (forse)
Non vorrei fare una cosa mi crea un eseguibile e poi aprendo di nuovo
l'editor possa fare l'equivalente di vb6
Dim T as mioProgramma
t= new MioProgramma
T.pippo="pluto"
se la dichiaro public una variabile almeno se mi ricordo bene msdn mi
dice che è public ANCHE fuori dell'applicazione.
scendiamo nel concreto
Io in questa variabile ad esempio metto un path
questo path lo deve leggere e consumare e casomai impostare tutre le
varie classi "classette" "classichhie" ed amenità varie della mia app.
MA non deve essere visibile dall'esterno...cosa invece che è public!
ho interpretato male questo link?
http://msdn.microsoft.com/it-it/library/76453kax(VS.90).aspx
ripeto....è stata una settimana difficile e sono stanchissimo...mi
faccio senso a fare domande niubbe così....

 dice che è public ANCHE fuori dell'applicazione.
Solo se la dichiari in una classe/modulo che è a sua volta visibile al
di fuori...


wrote:
Dopo un giorno spiego meglio...e casomai spiego pure il mio errore a
"memento" per i niubbi posteri.
Per la prima volta dovrei fare pesantemente uso dei plugin "caricabili
a caldo".
La situazione è quindi quella di avere un progetto con una (più)
interfacce esposte ed una serie di plugin parcheggiati in una
cartella.
Tramite un po di reflection questi assembly ESTERNI modificano
l'infrastruttura host.
Per questi ovvi motivi il passaggio di parametri deve avvenire
attraverso le proprietà dell'interfaccia esposta.
Però può capitare anche che NEL progetto io debba IMPORTARE assembly
esterni...che quindi entrano a fare parte del progetto globale.
Però, memore del retaggio del vb6, mi veniva da impostare una
variabile che trasportasse il valore ATTRAVERSO tutto il progetto.
Correttamente per l'oop ogni classe dovrebbe essere autonoma e quindi
il valore si trasmette attraverso una serie di passaggi attraverso
property.
Era una pigrizia mia impostare una variabile, ad esempio il path di
salvataggio predefinito, e usarla in tutto il PROGETTO (non solo
nell'assembly).
Ovvio che in dotNet ci sono mille altri sistemi....compreso
my.Resources che ho preferito!
Che volete farci...sono nato procedurale è dura cambiare mentalità!
Procedurale NON ci leverei le gambe...a quanto mi risulta non esiste
una variabile dichiarabile visibile a TUTTO E SOLTANTO il progetto
qualunque numero di assemblies lo componga!
Per dire:
una volta compilato non voglio che lo pseudoeseguibile abbia visibile
il path di salvataggio da un visualizzatore oggetti qualsiasi
Saluti...
:)

 "memento" per i niubbi posteri.
Oddio, la trama si infittisce...
parli di importare assembly in un *progetto* e non capisco se devo
leggere *solution* o intendi letteralmente un progetto, nel qual caso
allora non interpreto più bene il termine *importare*...
Comunque, l'importante è che ti sei capito da solo ;-)
Rispetto alla tua domanda finale, la visibilità può essere al più
ristretta alla singola assembly (=progetto per come lo intendo io,
parola chiave Friend), altrimenti deve essere pubblica, e in quel caso
non può essere "pubblica ma solo per le assembly mie amiche"