2016-03-26 31 views
-1

ASP.NET'te yeniyim :) ve session hakkında daha fazla bilgi edinmek istiyorum. İşte basit bir örnek: Düğmeye her tıkladığımda listInt'a bir tane daha tamsayı ekleyeceğim ve listeyi Session["listInt"] kullanarak saklıyorum. Ben değişken Session["listInt"] hala değerini depolamak tıkladığınızda hattını Session["listInt"] = listInt;, yorum yaparsanız Burada Oturum değişkenini kullanarak bilgi depolayın

public partial class TestSession : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      if (Session["listInt"] == null) 
      { 
       Session["listInt"] = new List<Int16>(); 
      } 
     } 

    } 

    protected void AddInt_Click(object sender, EventArgs e) 
    { 
     Int16 i = 0; 
     List<Int16> listInt = (List<Int16>)Session["listInt"]; 
     listInt.Add(i); 
     Session["listInt"] = listInt; 
     Response.Write("Hello!"); 

    } 
} 

(hala listeye daha fazla tamsayı eklemek anlamına gelir), anlamıyorum şey:

 Int16 i = 0; 
     List<Int16> listInt = (List<Int16>)Session["listInt"]; 
     listInt.Add(i); 
     //Session["listInt"] = listInt; //No idea why.... 
     Response.Write("Hello!"); 

Herkes bana bu durumda oturumun nasıl çalıştığını söyleyebilir mi? Şimdiden teşekkürler :)

cevap

4

Listeniz bir referans türüdür, bu nedenle sunucudan oturum durumu kapsayıcısından aldığınızda, sunucu belleğindeki bazı nesnelerin bir başvurusu alırsınız. Bu nedenle daha sonra yeniden atamaya gerek yoktur.

+0

Teşekkür ederim adam :) bana çok yardımcı oluyor :) –

İlgili konular