我很困惑如何在會話中引用對象,如何更新和複製。如何在會話中創建對象的副本以更新而不更新會話?
如果我創建 MyObject obj = new Object();
then Session [「object」] = obj;
MyObject temp = (MyObject)Session["object"];
如果我改變溫度的東西,會在會話對象進行更新?
我是否需要按照Session [「object」] = temp的更改 ?
謝謝!
我很困惑如何在會話中引用對象,如何更新和複製。如何在會話中創建對象的副本以更新而不更新會話?
如果我創建 MyObject obj = new Object();
then Session [「object」] = obj;
MyObject temp = (MyObject)Session["object"];
如果我改變溫度的東西,會在會話對象進行更新?
我是否需要按照Session [「object」] = temp的更改 ?
謝謝!
您不需要將temp
變量存儲回會話。由於Session["object"]
和temp
變量都指向同一個對象,所以在temp
中修改它也會在Session中修改它。
如果MyObject
是一個引用類型(class),並且如果它是可變的(即它有改變它的狀態的方法),那麼每次都不需要重新分配Session。
如果MyObject
是一個值類型(結構體),如果它是不可變類(如String),則每次更改它時都必須將其重新分配給會話。