List<Foo> fooList = Session["foo"] as List<Foo>;
fooList.Add(bar);
对Add()的调用是否会更改会话中的数据?换句话说:当我接下来从会话中提取“foo”时,列表中是否会包含bar
?
答案 0 :(得分:2)
是会话将被更改,因为List<T>
是参考类型。此fooList
变量表示的所有内容都是指向真实对象的指针,Session["foo"]
表示的所有内容也是指向同一对象的指针。因此,更改fooList
将影响会话也指向的真实对象。如果在会话中存储值类型,行为将会有所不同。