我该如何优化此代码?

时间:2012-01-16 08:27:15

标签: c# optimization methods

我有以下代码:

    if (userValueSom01 == realResult01)
    {
        //answer = correct
        //count +1 for overall good answers
        WpfApplication1.Properties.Settings.Default.totallGood++;
        //count for good +1
        answerThisWindowGood++;
        //make visible the green logo
        Som01G.Visibility = Visibility.Visible;
    }
    else
    {
        //answer = wrong
        //count +1 for overall wrong answers
        WpfApplication1.Properties.Settings.Default.totallWrong++;
        //count for wrong +1
        answerThisWindowWrong++;
        //make visible the red logo
        Som01W.Visibility = Visibility.Visible;
        labelSom01Check.Content = Convert.ToString(realResult01);
    }

现在重点是,这发生了XX次,其中XX是与您在代码中看到的数字相对应的数字。 所以在上面的例子中,XX是01。  *注意,它在输入中是01,在结果中也是01

在非常深入c#(还)中,起初我认为当XX为20时,我需要复制上面的部分20次,并更改数字。 现在这看起来很麻烦,我想应该有一些更聪明的方法来解决这个问题,重点是,我不能想到如何(如上所述,我对c#还不是很深)。

任何可以推动我朝着正确方向前进的人?

提前谢谢。

---编辑1 --- 谢谢Miika L. 与您的解决方案略有不同:

public bool checkValue(double value, int result, Image controlG, Image controlW, Label label)
        {
            if (value == result)
            {
                //... Do stuff
                controlG.Visibility = Visibility.Visible;
                return true;
            }
            else
            {
                //... Do other stuff
                controlW.Visibility = Visibility.Visible;
                label.Content = result.ToString();
                return false;
            }
        }

现在我确实可以打电话: bool test = checkValue(userValueSom01,realResult01,Som01G,Som01W,labelSom01Check);

工作:) 感谢名单!

2 个答案:

答案 0 :(得分:1)

把它写成函数怎么样?

public bool checkValue(
    int value,
    int result,
    Control controlG,
    Control controlW,
    Label label)
{
    if (value == result)
    {
        ... Do stuff
        controlG.Visibility = Visibility.Visible;
    }
    else
    {
        ... Do other stuff
        controlW.Visibility = Visibility.Visible;
        label.Content = result.ToString();
    }
}

答案 1 :(得分:0)

而不是像userValueSom01这样在名称中定义数百个带数字的变量,如果合适,realResult01最好使用数组字典