2010-07-20 65 views
0

我很困惑如何在会话中引用对象,如何更新和复制。如何在会话中创建对象的副本以更新而不更新会话?

如果我创建 MyObject obj = new Object();
then Session [“object”] = obj;

MyObject temp = (MyObject)Session["object"]; 

如果我改变温度的东西,会在会话对象进行更新?

我是否需要按照Session [“object”] = temp的更改 ?

谢谢!

回答

0

您不需要将temp变量存储回会话。由于Session["object"]temp变量都指向同一个对象,所以在temp中修改它也会在Session中修改它。

2

如果MyObject是一个引用类型(class),并且如果它是可变的(即它有改变它的状态的方法),那么每次都不需要重新分配Session。

如果MyObject是一个值类型(结构体),如果它是不可变类(如String),则每次更改它时都必须将其重新分配给会话。