Sub Globale

lunedì 19 maggio 2008 - 11.23

Arsenico Profilo | Junior Member

Ciao a tutti!
Ora vi pongo una domanda banale a molti, ma alla quale purtroppo non mi sono ancora dato risposta: come faccio a creare una sub che mi venga vista da tutte le pagine del progetto e che posso richiamare in qualsiasi punto di qualsiasi pagina?

Pensavo fosse Public sub, ma dalle altre pagine non la vedo.

Sto lavorando con Visual Web Developer 2005 Express.

Grazie!

alx_81 Profilo | Guru

>Ciao a tutti!
Ciao Arsenico

>Ora vi pongo una domanda banale a molti, ma alla quale purtroppo
>non mi sono ancora dato risposta: come faccio a creare una sub
>che mi venga vista da tutte le pagine del progetto e che posso
>richiamare in qualsiasi punto di qualsiasi pagina?
>Pensavo fosse Public sub, ma dalle altre pagine non la vedo.
Public non significa globale, ma ad accesso pubblico per chi usa la classe che definisce il metodo.
Mi spiego molto semplicemente.

Una classe è la definizione di un oggetto. Una pagina aspx è legata ad una sua definizione e quindi ad una sua classe (o più d'una).
Ogni classe può avere proprietà e metodi e questi possono avere dei particolari livelli di accesso, tra cui il Public.
Questo significa che TUTTE le classi che richiamano/usano la tua classe possono accedere al metodo pubblico. Però non puoi chiamarlo come se fosse proprietario della pagina, bensì' devi istanziare l'oggetto (new della classe col metodo pubblico) oppure definire il metodo condiviso/statico (Shared/Static).
Nel primo caso devi fare nella tua pagina:

ClasseConMetodoPubblico obj = new ClasseConMetodoPubblico(); obj.MetodoPubblico(parametri);
Nel secondo, essendo il metodo statico (non ha bisogno di istanza) devi fare:

ClasseConMetodoPubblico.MetodoPubblico(parametri);

Tuttavia, a te non serve questo. Mi sembra che l'ereditarietà faccia più al caso tuo.

Definisci una classe "madre" che eredita dalla Page (quella da cui tutte le pagine ereditano) con il tuo metodo pubblico. tipo:
Class ClasseMadre : System.Web.UI.Page { // ... public void MetodoPubblico(int param1, string param2) { // ... } }
e poi eredita:

Class TuaPagina : ClasseMadre { //... this.MetodoPubblico(1, "ciao"); }

A questo punto, fai ereditare tutte le pagine dalla classe base ed è fatta. Ti troverai sempre disponibile il metodo pubblico che ti serve.

>Grazie!
Di nulla!

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

Arsenico Profilo | Junior Member

Ho fatto un po' di prove ma non ho capito molto: in che pagina lo dovrei incollare questo codice?
E poi è per Visual Basic? Perchè forse non l'ho detto ma sto programmando in Vb.net.

Abbi pazienza per le domande elementari, ma quel po' che so di programmazione l'ho imparato male e in fai da te e come dice Alpitour Ahi ahi ahi ahi ahi!!!

alx_81 Profilo | Guru

>Ho fatto un po' di prove ma non ho capito molto: in che pagina
>lo dovrei incollare questo codice?
>E poi è per Visual Basic? Perchè forse non l'ho detto ma sto
>programmando in Vb.net.
No, è C#.. Allora.. Questa cosa necessita di una spiegazione mooolto approfondita. Perchè se sei alla base base, ti mancano proprio le fondamenta per capire quanto ti ho detto.

Guardati intanto questo link:
http://en.wikipedia.org/wiki/Object_oriented

>
>Abbi pazienza per le domande elementari, ma quel po' che so di
>programmazione l'ho imparato male e in fai da te e come dice
>Alpitour Ahi ahi ahi ahi ahi!!!
ahahahha


Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5