session 可以这样赋值吗?

每日进步 2013-01-06 09:48:27
我想把一个对象付给session如:session["student"] = Student(stuent是个对象)
现在想改变这个对象的一个属性值,两种写法有区别吗?
1、((Student)Session["student"]).name = "张三";

2.Student st = ((Student)Session["student"]);
st.name = "张三";
Session["student"] = st;
...全文
463 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
rayaspnet 2013-01-08
  • 打赏
  • 举报
回复
引用 20 楼 hdt 的回复:
如果 session 里面存放 值类型, 第一种方式,就无法修改。
+1 如果student 定义是 struct, 第一种方式就出错不能用。 (Cannot modify the result of an unboxing conversion) 如果是class 2个都能用
myljg 2013-01-08
  • 打赏
  • 举报
回复
在确认Session中的对象不为null时, 两各方法都行的。
xuan.ye 2013-01-08
  • 打赏
  • 举报
回复
1、((Student)Session["student"]).name = "张三"; 2.Student st = ((Student)Session["student"]); st.name = "张三"; Session["student"] = st; 3.Student st = ((Student)Session["student"]); st.name = "张三"; 这三种应该都是一样的。
真相重于对错 2013-01-08
  • 打赏
  • 举报
回复
如果 session 里面存放 值类型, 第一种方式,就无法修改。
你妹仙人板板 2013-01-08
  • 打赏
  • 举报
回复
你是只改session里面的值 建议用第一种
种草德鲁伊 2013-01-08
  • 打赏
  • 举报
回复
第二种是多余的
真相重于对错 2013-01-08
  • 打赏
  • 举报
回复
struct students {} class students {} 就有区别了
rayaspnet 2013-01-07
  • 打赏
  • 举报
回复
引用 楼主 jinshiweikai0 的回复:
我想把一个对象付给session如:session["student"] = Student(stuent是个对象) 现在想改变这个对象的一个属性值,两种写法有区别吗? 1、((Student)Session["student"]).name = "张三"; 2.Student st = ((Student)Session["student"]); st.……
没有区别,一样
claymore1114 2013-01-06
  • 打赏
  • 举报
回复
要 弄清楚 引用类型 的内存分布 就行。
zhouqing201021 2013-01-06
  • 打赏
  • 举报
回复
二者没有什么区别吧?
haojuntu 2013-01-06
  • 打赏
  • 举报
回复
习惯用第二种,第一种修改后给session赋值了吗
six-years 2013-01-06
  • 打赏
  • 举报
回复
引用 7 楼 TheDolphin 的回复:
都可以,没什么本质区别
+1
siqiutong 2013-01-06
  • 打赏
  • 举报
回复
1、((Student)Session["student"]).name = "张三"; 2.Student st = ((Student)Session["student"]); st.name = "张三"; Session["student"] = st; Session可以存放对象.所以,你第二种方法中的"st"就是Session["student"].因为对象间的引用是地址引用的. 其实没有Session["student"] = st;这一句,你的Session["student"]已经改了. 对对象赋值一定要搞清楚用途,有时候这可能不是你要的效果呢.
目标 2013-01-06
  • 打赏
  • 举报
回复
都可以的 还可以这样 session.Add("Student","张山");
色拉油 2013-01-06
  • 打赏
  • 举报
回复
都可以,没什么本质区别
kxdabao 2013-01-06
  • 打赏
  • 举报
回复
两种都可以吧,只是实现方式不一样
每日进步 2013-01-06
  • 打赏
  • 举报
回复
我知道是这样,我想问的是这两种方法应该用哪种?为什么?
  • 打赏
  • 举报
回复
引用 2 楼 Q1092926267 的回复:
第一种方法直接修改session 第二种方法修改对象后把对象赋值给session
再者,话说你都不判断session为空吗
howtodown 2013-01-06
  • 打赏
  • 举报
回复
引用 2 楼 Q1092926267 的回复:
第一种方法直接修改session 第二种方法修改对象后把对象赋值给session
高手
six-years 2013-01-06
  • 打赏
  • 举报
回复
第一种方法直接修改session 第二种方法修改对象后把对象赋值给session
加载更多回复(1)

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧