Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

セッション値の存在確認メソッドを拡張メソッドで定義する

セッション値の存在確認メソッドを拡張メソッドで定義します。

どうして?

  1. 毎回nullチェックをすると煩雑なコードになる。
  2. セッション値が存在しないときは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;
        }

    }
}