2
List<Foo> fooList = Session["foo"] as List<Foo>;
fooList.Add(bar);
对Add()的调用是否更改会话中的数据?换句话说:当我从Session中拉下“foo”时,该列表是否包含bar
?ASP.NET会话数据是否更改?
List<Foo> fooList = Session["foo"] as List<Foo>;
fooList.Add(bar);
对Add()的调用是否更改会话中的数据?换句话说:当我从Session中拉下“foo”时,该列表是否包含bar
?ASP.NET会话数据是否更改?
是的会话将被更改为List<T>
是一个引用类型。所有这些fooList
变量代表的是指向真实对象的指针,并且所有Session["foo"]
表示的也是指向同一对象的指针。因此,更改fooList
将影响会话也指向的真实对象。如果您在会话中存储值类型,行为将会不同。
我想我问的是会话返回val还是ref? – lance 2010-03-24 20:58:32
会话持有有效指向List <>的指针。所以,当你检索它并混淆List <>时,你正在搞乱存储在Session中的同一个List <>。 @达林给出了正确的答案。 – 2010-03-24 21:01:37