14 messaggi dal 20 febbraio 2003
Salve!
Per un mio errore di programmazione :) ho potuto provare che le variabili un paio di variabili Public (tipo boolean) mantenevano il loro valore durante una session (o postback?). Causa tempo non ho fatto molte prove ma il risultato sembra essere proprio questo: tesi convalidata, se non ricordo male, da due righe di descrizione sul libro di Balena. Io mi
chiedevo: E' proprio vero? Se è vero allora ogni variabile public viene memorizzata come una session (cosa quanto meno drammatica per come sto strutturando la mia
applicazione) con tutto quello che ne consegue?

Ciao e grazie a tutti :)

3.939 messaggi dal 28 gennaio 2003
A me non risulta, ma, non si finisce mai di scoprire cose nuove.

Del resto basta fare una prova.

    Public v As Boolean = False
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not Me.IsPostBack Then
            v = True
        End If
        Response.Write("V: " & v)

    End Sub


Non mi sembra proprio che la variabile pubblica v venga mantenuta od archiviata da qualche parte
Sì infatti, viene mantenuta se è statica, sia a livello di pagina che di applicazione.
Se si pensa che ad ogni richiesta di una pagina, viene creata un'istanza di una classe che eredita da page e poi distrutta, private e pubbliche faranno puff, restano solo quelli statiche ma condivisibile tra tutti. Una specie di Application ma sconsigliabile da usare perché vi sono problemi di sincronizzazione.

Ciao

Il mio blog
Homepage
3.939 messaggi dal 28 gennaio 2003
Ricciolo ha scritto:
Sì infatti, viene mantenuta se è statica, sia a livello di pagina che di applicazione.
Se si pensa che ad ogni richiesta di una pagina, viene creata un'istanza di una classe che eredita da page e poi distrutta, private e pubbliche faranno puff, restano solo quelli statiche ma condivisibile tra tutti. Una specie di Application ma sconsigliabile da usare perché vi sono problemi di sincronizzazione.


Sto studiando e mi interessa capire.

Puoi fare un piccolissimo esempio (2 righe) per illustrare ?

Grazie, Pietro
Beh, prendendo il tuo codice:
Public Shared v As Boolean = False 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
If Not Me.IsPostBack Then 
v = True 
End If 
Response.Write("V: " & v) 
End Sub 

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.