在Session中存储Class对象,它是引用类型吗?

时间:2013-04-14 17:42:26

标签: c# asp.net

  • 我有一个Class X,它的对象是objX,我为它设置了属性并将它存储在Session中。
  • 创建一个相同类型X的另一个对象objY。将objX的内容复制到objY 喜欢:objY = objX。
  • 现在,当我更改objX的属性时,它会在objY中更改。
  • 即使我喜欢objY =(X)Session [“objX”],它也与objX相同

为什么会这样,怎么避免呢? 如何避免呢?

1 个答案:

答案 0 :(得分:2)

您没有克隆对象,只是在执行objX = objY时复制引用。使用正确实现的克隆方法。

CLONE:

public Class X{
  public String A;
  public String B;
  public X Clone(){
     X cl = new X();
     cl.A = this.A;
     cl.B = this.B;
     return cl;
  }            
}

语法可能不是100%正确。

相关问题