誰かが私には違い説明していただけます。Session.Add( "key"、value)とSession ["key"] = valueの違いは何ですか?
Session.Add("name",txtName.text);
とSession["name"] = txtName.text;
それは面接の質問だったと私はC#でDictionary
クラスのようkey = "Value"
形式の両方のストアデータと答えを。
私はそうですか、それとも違いがありますか?
誰かが私には違い説明していただけます。Session.Add( "key"、value)とSession ["key"] = valueの違いは何ですか?
Session.Add("name",txtName.text);
とSession["name"] = txtName.text;
それは面接の質問だったと私はC#でDictionary
クラスのようkey = "Value"
形式の両方のストアデータと答えを。
私はそうですか、それとも違いがありますか?
HttpSessionState
のコードを見ると、実際には同じであることがわかります。 C#でDictionary
クラス等key = "Value"
形式でデータを格納両方
それらとして
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; } } ... }
。
実際には、結果はIHttpSessionState
オブジェクトに格納されます。
これは、コードで、なぜ2つの機能がコンセプトを内在化するのに役立つのかを正確に示しているので、すばらしい答えです。私はセッションの状態で辞書や他のハッシュテーブルを使用していたことをすべて考えていたので、@ matthewの別のコメントのコメントが好きです。率直に言って、それに基づいて追加または変更する前に値がすでに存在していました。 – TonyG
これは同じではありません:__key__が存在する場合、__value__は** _ update _ **ですが、__key__ __doesn't__が存在する場合、__value__を使用して** _ _ _を作成します__ ** SaveOrUpdate ** __メソッド。 – Adhemar
投稿した2つのコードスニペットは機能的に同じものです。どちらも、キーによって定義された特定のSessionオブジェクトを更新します(存在しない場合は作成します)。
Session.Add("name",txtName.text);
と同じである。
Session["name"] = txtName.text;
最初の方法に基づく、第二文字列インデクサーベースです。両方とも、キーが保持する以前の値を上書きします。
'Dictionary'とは対照的に、同じキーで2回辞書に' Add 'しようとすると、例外がスローされます。 'Dictionary'のインデクサは' Session'オブジェクトと同様に動作します(追加または更新され、例外はスローされません)。 – Matthew
@Matthew素晴らしい追加のメモ... –
@Mathew - 余分な注釈ありがとう –
これについては、いくつかの素晴らしいmsdnのドキュメントがあると確信しています。おそらく、あなたは自分でそれを研究し、次のインタビューのためによりよく準備することができます。 – jpm
それは*ひどい*インタビューの質問です。 –
@EricLippert、私は完全に同意します。開発者を雇うプロセスは、ほとんどの組織で非常に壊れています。 – SolutionYogi