セッション値の存在確認メソッドを拡張メソッドで定義します。
どうして?
- 毎回nullチェックをすると煩雑なコードになる。
- セッション値が存在しないときはnullを返すという仕様を記憶していなければならない。
拡張メソッドを使えば糖衣構文を用意することができます。
どうすれば?
ソースコードを記載します。
using System; using System.Web.SessionState; namespace Extensions { public static class SystemWebSessionStateExtensions { /// <summary> /// セッション値が存在するかどうかを示す値を取得します。 /// </summary> /// <param name="self">HttpSessionStateのインスタンス。</param> /// <param name="index">セッション値の数値インデックス。</param> /// <returns>セッション値が存在する場合はtrue。しない場合はfalse。</returns> public static bool Contains(this HttpSessionState self, int index) { return (0 <= index) && (index < self.Count); } /// <summary> /// セッション値が存在するかどうかを示す値を取得します。 /// </summary> /// <param name="self">HttpSessionStateのインスタンス。</param> /// <param name="name">セッション値のキー名。</param> /// <returns>セッション値が存在する場合はtrue。しない場合はfalse。</returns> public static bool Contains(this HttpSessionState self, string name) { return self[name] != null; } } }