将用户文本框输入(数字)放入已定义的数组大小和输出中?

时间:2012-03-27 03:11:30

标签: c# arrays

这是“家庭作业”(在我的c#书中)

在文本框中应该发生的事情是用户输入10个数字(我会一次输入一个),每次点击“addValBtn”按钮时,它应该将该数字添加到数组中,直到它填满10个点10个用户输入的号码。然后我试图通过displayValBtn显示该数组(我可以自己弄清楚),但我不能让这个该死的数组正常工作。

我的书解释了如何设置阵列,并且从我在Stackoverflow上读到的内容和谷歌人员也有类似的问题。但是每次单击按钮时,它们似乎都没有输入。所以我完全不知道该怎么做。

我创建并定义了我的数组为numArray(使用double) - 将我的数组索引设置为10.然后我做了一个for循环,以便它应该将文本框中的数字解析为数组。但是,当我运行没有任何反应。 (或者就我的工作而言,我只是没有将它显示出来以查看它是否存储数字)

1)我是否正确地为这种情况做这件事? 2)由于我需要通过按钮填充数组的内容,我的变量是否需要全局?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace array
{
 public partial class array : Form
{
    public array()
    {
        InitializeComponent();
    }

    private void exitBtn_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    public void addValBtn_Click(object sender, EventArgs e)
    {
       double[] numArray = new double[10];

       for (int index = 0; index < numArray.Length; index++)
       {
        numArray[index] = int.Parse(intTxtBox.Text);
       } 
    }

    private void displayValBtn_Click(object sender, EventArgs e)
    {

    }
}
}

2 个答案:

答案 0 :(得分:1)

  

我是否正确地处理了这种情况?

排序,但不是真的:)用于解析输入的代码很好,但您只需将数组的所有10个值分配给相同的数字。

此外,您的数组在本地作用于addValBtn_Click方法,这意味着它不会在该事件处理程序的末尾附近。

  

因为我需要在填充后显示数组的内容   通过一个按钮,我的变量是否需要全局?

正如我之前提到的,你的阵列不会留下来。你是在正确的轨道上,但它不需要是一个全局变量,只需要等级Form

您需要声明一次数组,然后在单击按钮时继续将值推入其中。一定要跟踪你所在的索引。

  

我在类中声明了我的“索引”,如下所示:int index = 0;而它是   告诉我,字段'array.array.index'永远不会被分配给。   对我来说真的没有意义,看我是如何给它赋值的!

确保您在正确的位置声明这一点。如果你已经完成了所有的事情,你说你的班级声明应该是这样的:

public partial class array : Form
{
   private const int MAX_ITEMS = 10;
   private int _currentIndex = 0;
   private double[] _numArray = new double[MAX_ITEMS];

   //SNIP...
}

应该没有任何问题。如果有,那么我可能无法帮助你而不会站在你的肩膀上:))

答案 1 :(得分:0)

您需要对事件驱动编程进行一些研究。

for (int index = 0; index < numArray.Length; index++)
{
    numArray[index] = int.Parse(intTxtBox.Text);
} 

这会将相同的整数读入数组的每个位置。

您需要在班级中存储“index”,并执行以下操作:

if (this.index < 10)
{
    numArray[this.index] = int.Parse(intTxtBox.Text);
    this.index++
}