重写多个if语句

Pos*_*Guy 0 asp.net optimization user-interface control-flow

我觉得这是一堆你知道我的意思.它的工作原理,但我觉得我在页面生命周期(加载和回发)方面做得太过分了,甚至我在每个if语句中都有冗余.

这是怎么回事:

  1. 在非常页面加载时调用此方法(无论是回发还是其他)
  2. 如果用户提交表单,则会减少他们的totalPoints(这些radiobuttons下面有一个按钮,允许他们提交和声明积分).

因此,我也在用户声明点(提交)之后立即调用此方法,该点将从下一次的总数中删除这些点.因此,基于其帐户中的总分,我需要在页面从上次提交刷新后启用/禁用这些单选按钮

private void SetPointsOptions()
{
    int totalPoints = customer.TotalPoints;

    rbn200Points.Text = "200 pts";
    rbn250Points.Text = "250 pts";
    rbn400Points.Text = "400 pts";
    rbn500Points.Text = "500 pts";
    rbn600Points.Text = "600 pts";

    // clear state of radio buttons & disable submit
    if (totalPoints < 200)
    {
        rbn200Points.Enabled = false;
        rbn250Points.Enabled = false;
        rbn400Points.Enabled = false;
        rbn500Points.Enabled = false;
        rbn600Points.Enabled = false;

        rbn200Points.Checked = false;
        rbn250Points.Checked = false;
        rbn400Points.Checked = false;
        rbn500Points.Checked = false;
        rbn600Points.Checked = false;

        btnClaimRewardPoints.Enabled = false;
        return;
    }

    if(totalPoints >= 200 && totalPoints < 250)
    {
        rbn200Points.Enabled = true;
    }
    else if(totalPoints >= 250 && totalPoints < 400)
    {
        rbn200Points.Enabled = true;
        rbn250Points.Enabled = true;
    }
    else if(totalPoints >= 400 && totalPoints < 500)
    {
        rbn200Points.Enabled = true;
        rbn250Points.Enabled = true;
        rbn400Points.Enabled = true;
    }
    else if(totalPoints >= 500 && totalPoints < 600)
    {
        rbn200Points.Enabled = true;
        rbn250Points.Enabled = true;
        rbn400Points.Enabled = true;
        rbn500Points.Enabled = true;
    }
    else if(totalPoints >= 600)
    {
        rbn200Points.Enabled = true;
        rbn250Points.Enabled = true;
        rbn400Points.Enabled = true;
        rbn500Points.Enabled = true;
        rbn600Points.Enabled = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

Fre*_*örk 8

鉴于我没有错过任何重要的代码:

private void SetPointsOptions()
{
    int totalPoints = customer.TotalPoints;
    rbn200Points.Enabled = totalPoints >= 200;
    rbn250Points.Enabled = totalPoints >= 250;
    rbn400Points.Enabled = totalPoints >= 400;
    rbn500Points.Enabled = totalPoints >= 500;
    rbn600Points.Enabled = totalPoints >= 600;
}
Run Code Online (Sandbox Code Playgroud)