[C#]クラスのプロパティに数値セット時、範囲外データの処理をシンプルに扱う

クラスのプロパティに数値をセットする際、値として有効な範囲が決まっている場合があります。

範囲外の値が指定された場合は例外を投げるというのも1つの実装ですが、例外ではなく上下限値が指定されたとみなしたい場合はどうやって実装するとシンプルになるでしょうか?
例えば0~100の値が有効値で、負の数が指定された場合は0、100以上の値が指定された場合は100とみなしたい場合、以下のように記述するとすっきりします。

private int _Value;
public int Value { 
    set {
        // 指定値をセット(但し有効範囲は,0~100のみ)
        this._Value = Math.Min( 100, Math.Max( 0, value ) );
    }
    get {
        return this._Value;
    }
}



0未満の値が入ったときに、0とみなす処理を以下のように記述しています。
※プロパティのsetに記述した処理内で、valueは入力値を意味します

Math.Max( 0, value )



同様に上限値に関しては,Min関数で制限しています。

関連記事

コメントを残す

メールアドレスが公開されることはありません。