有人可以向我解释一下:
Session.Add("name",txtName.text);
和Session["name"] = txtName.text;
这是一个面试问题,我回答说两者都以 C# 中的类key = "Value"
等格式存储数据。Dictionary
我是对的,还是有什么不同?
查看代码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;
}
}
...
}
至于他们俩
以 C# 中的类
key = "Value"
等格式存储数据。Dictionary
他们实际上将结果存储在一个IHttpSessionState
对象中。
您发布的两个代码片段在功能上是相同的。两者都更新(或如果不存在则创建)Session
由键定义的某个对象。
Session.Add("name",txtName.text);
是相同的:
Session["name"] = txtName.text;
第一个是method-based,
第二个是 string 的地方indexer-based
。
两者都覆盖键保存的先前值。