27

誰かが私に次の違いを説明してもらえますか:

Session.Add("name",txtName.text);Session["name"] = txtName.text;

インタビューの質問で、どちらもデータをC# のクラスのkey = "Value"ような形式で格納すると答えました。Dictionary

私は正しいですか、違いはありますか?

4

2 に答える 2

27

のコードを見ると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それらは実際に結果をオブジェクトに格納します。

于 2012-04-04T20:04:19.827 に答える
13

投稿した2つのコードスニペットは、機能が同じです。Session両方とも、キーによって定義された特定のオブジェクトを更新(または存在しない場合は作成)します。

Session.Add("name",txtName.text);

と同じです:

Session["name"] = txtName.text;

1つ目はmethod-based,、2つ目が文字列である場所indexer-basedです。

どちらも、キーが保持していた以前の値を上書きします。

于 2012-04-04T19:43:29.293 に答える