有人可以向我解释一下之间的区别:
Session.Add("name",txtName.text);
和Session["name"] = txtName.text;
这是一个面试问题,我回答说,它们都以key = "Value"
格式存储数据,如C#中的Dictionary
类。
我是对的,还是有什么不同?
答案 0 :(得分:26)
查看HttpSessionState
的代码向我们展示了它们实际上是相同的。
public sealed class HttpSessionState : ICollection, IEnumerable
{
private IHttpSessionState _container;
...
public void Add(string name, object value)
{
this._container[name] = value;
}
public object this[string name]
{
get
{
return this._container[name];
}
set
{
this._container[name] = value;
}
}
...
}
至于他们两个
以
key = "Value"
格式存储数据,例如C#中的Dictionary
类。
它们实际上将结果存储在IHttpSessionState
对象中。
答案 1 :(得分:12)
您发布的两个代码段在功能上是一样的。两者都更新(或创建,如果它不存在)由键定义的某个Session
对象。
Session.Add("name",txtName.text);
与:
相同 Session["name"] = txtName.text;
第一个是method-based,
,其中第二个是字符串indexer-based
。
两者都会覆盖密钥持有的先前值。