2016-03-26 8 views
-1

Ich bin neu in ASP.NET :) und ich würde gerne mehr über session verstehen. Hier ist ein einfaches Beispiel: Jedes Mal, wenn ich auf die Schaltfläche klicke, wird eine weitere Ganzzahl zu listInt hinzugefügt, und ich speichere die Liste mit Session["listInt"].Speichern Sie Informationen mit Sitzungsvariablen

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!"); 

    } 
} 

Hier ist das, was ich nicht verstehe, wenn ich die Linie Session["listInt"] = listInt; Kommentar, wenn ich die Variable Session["listInt"] noch den Wert speichern, klicken Sie auf (bedeutet noch mehr integer zur Liste hinzufügen):

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

Kann mir bitte jemand sagen, wie die Sitzung in diesem Fall funktioniert? Vielen Dank im Voraus :)

Antwort

4

Ihre Liste ist ein Referenztyp, wenn Sie also vom Server über den Sitzungsstatus-Container abrufen, erhalten Sie einen Verweis auf ein Objekt im Serverspeicher. Daher ist es nicht nötig, sie später neu zuzuweisen.

+0

Danke Mann :) es hilft mir sehr :) –

Verwandte Themen