誰かが私に次の違いを説明してもらえますか:
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
それらは実際に結果をオブジェクトに格納します。
投稿した2つのコードスニペットは、機能が同じです。Session
両方とも、キーによって定義された特定のオブジェクトを更新(または存在しない場合は作成)します。
Session.Add("name",txtName.text);
と同じです:
Session["name"] = txtName.text;
1つ目はmethod-based,
、2つ目が文字列である場所indexer-based
です。
どちらも、キーが保持していた以前の値を上書きします。