问题解决
我正在开发一个项目,其中一个数组包含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