C#项目,无法重置/清除数组,将数组设置为零而不是答案

时间:2012-08-22 05:38:40

标签: c# arrays

问题解决

我正在开发一个项目,其中一个数组包含5个测试的分数,但是用户不必填充总共5个分数的数组。有一个按钮,显示一个消息框,列出5个分数值。用户需要能够连续两次运行程序而无需重新启动程序,每次第二轮到来时,数组仍然保持最后一轮的值。我无法将值设置为零,因为在输入每个分数后会计算并显示实时平均值,并且零点会偏离平均值。

这是显示分数的按钮。如果用户输入的分数少于5(数组大小为5),则消息框应仅显示4个或更少的分数,就像我现在的方式一样,它显示未使用值的零。

 private void btnDisplayScores_Click(object sender, EventArgs e)
    {
     for (int x = 0; x < counter; x++)
      {
        Convert.ToString(scoreArray[x]);
       }
      MessageBox.Show(scoreArray[0] + Environment.NewLine 
               + scoreArray[1] + Environment.NewLine + scoreArray[2] 
               + Environment.NewLine+ scoreArray[3] + Environment.NewLine 
               + scoreArray[4]);

我们只学会了使用null和字符串,我们还没有进入可空的整数和小数。我们期望在不使用可以为空的数字类型的情况下完成它。

这会重置这些值,以便用户可以开始另一轮。

    private void Restart()
    {
        scoreTotal = 0;
        txtScore.Clear();
        txtScoreTotal.Clear();
        txtScoreCount.Clear();
        txtAverage.Clear();
        for (int x = 0; x <= counter; x++)
        {
            scoreArray[x] = 0;
        }
        counter = 0;
    }

也许这会有所帮助。

private void btnAdd_Click(object sender, EventArgs e)
        {
          int currentScore;
          if (counter < 5)
            {
              if (DataValid() && DataRange())
                {
                    currentScore = Convert.ToInt32(txtScore.Text);
                    Input(currentScore);
                    Process();
                }
                else
                {
                    MessageBox.Show("Data was invalid, please enter valid data.", "Error");
                }
                counter++;
            }
           else
            {
                Restart();
            }
            txtScore.Focus();
        }

编辑*我错误地认为我需要将数组转换为字符串以在消息框中显示它,修复了它但不是我问题的核心。

我可以尝试-1建议tonite或tommarow

尚未学习列表,数组被声明为全局

edit2 *问题解决了,使用-1解决方案,感谢mfussenegger

0 个答案:

没有答案