我很困惑如何在会话中引用对象,如何更新和复制。如何在会话中创建对象的副本以更新而不更新会话?
如果我创建 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),则每次更改它时都必须将其重新分配给会话。