C# 如何在没有引用的情况下复制会话数据?
我有C# 如何在没有引用的情况下复制会话数据?,c#,asp.net,session,clone,C#,Asp.net,Session,Clone,我有会话对象,如何在没有引用的情况下复制此值 var temp=new T(Session["Tdata"] as T); temp.DataCount.RemoveAt(1); 我的T班是 public T() { DataCount=new List<int>(); } public T(T tempt) { DataCount=tempt.DataCount; } public List<int> DataCount{get;set;} publ
会话对象
,如何在没有引用的情况下复制此值
var temp=new T(Session["Tdata"] as T);
temp.DataCount.RemoveAt(1);
我的T班是
public T()
{
DataCount=new List<int>();
}
public T(T tempt)
{
DataCount=tempt.DataCount;
}
public List<int> DataCount{get;set;}
public T()
{
DataCount=新列表();
}
公共T(T诱惑)
{
DataCount=test.DataCount;
}
公共列表数据计数{get;set;}
当我从temp中删除DataCount
时,它也会从Session[“Tdata”]
中删除。我不想从Session中删除它。谷歌说这是因为引用类型
。谢谢。列表
是引用类型,就像T
一样。因此,当复制构造函数复制原始的数据计数
属性时,它不是复制值序列,而是复制原始的列表
本身-因此,对一个属性的更改自然会反映在另一个属性中
更改复制构造函数以创建新列表,但使用相同的原始成员。幸运的是,List
的构造函数接受一个现有列表并获取其成员:
public T(T tempt)
{
DataCount = new List<int>(tempt.DataCount);
}
public T(T诱惑)
{
DataCount=新列表(试探.DataCount);
}
列表
是一种引用类型,就像T
一样。因此,当复制构造函数复制原始的数据计数
属性时,它不是复制值序列,而是复制原始的列表
本身-因此,对一个属性的更改自然会反映在另一个属性中
更改复制构造函数以创建新列表,但使用相同的原始成员。幸运的是,List
的构造函数接受一个现有列表并获取其成员:
public T(T tempt)
{
DataCount = new List<int>(tempt.DataCount);
}
public T(T诱惑)
{
DataCount=新列表(试探.DataCount);
}