shuhelohelo’s blog

Xamarin.Forms多めです.

C#である値以上またはある値以下に変数の値を維持する

ある変数があって,それは例えばスクロールの位置だったり,増減する数値を格納されるものとする.

で,ある値以上または以下に値が行かないようにしたい,つまり下限や上限を決めたいとする.

このとき,値が変化するたびに発生するイベントを利用し,イベントハンドラで値を制限する処理を行うとする.

この例ではSliderコントロールを使って,0~100の間で変化するスライダーの値を,表示時に20~80に制限する.

if文を使う

        private void Slider_ValueChanged(object sender, ValueChangedEventArgs e)
        {
            double val = e.NewValue;

            //e.NewValueは0~100で変化するが
            //表示させる値としては上限80,下限20に制限する
            if(val>80)
            {
                val = 80;
            }
            if(val<20)
            {
                val = 20;
            }

            SliderValue = val;
        }

Math.Max(),Min()メソッドを使う

        private void Slider_ValueChanged(object sender, ValueChangedEventArgs e)
        {
            double val = e.NewValue;

            //e.NewValueは0~100で変化するが
            //表示させる値としては上限80,下限20に制限する
            val = Math.Max(20, Math.Min(80, val));

            SliderValue = val;
        }

こちらのほうがシンプルに書ける.

実行

f:id:shuhelohelo:20200319104952g:plain

ソースコード

github.com