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

本文关键字:数组 定义 输出 文本 用户 输入 数字 | 更新日期: 2023-09-27 18:29:03

这是"作业"(在我的c#书中)

应该发生的是,在一个文本框上,用户输入10个数字(我会一次输入一个),每次他单击按钮"addValBtn",它都应该将该数字添加到数组中,直到它用10个用户输入的数字填满10个位置。然后我试图通过displayValBtn显示这个数组(我可以自己计算),但我就是无法让这个该死的数组正常工作。

我的书解释了如何设置一个数组fine,从我在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)
    {
    }
}
}

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

对于这种情况,我这样做正确吗?

有点像,但不是真的:)解析输入的代码很好,但您只是将数组的所有10个值分配给同一个数字。

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

由于我需要在数组填充后显示其内容通过一个按钮,我的变量需要是全局的吗?

正如我前面提到的,你的阵列不会一直存在。你走在正确的轨道上,但它不需要是一个全局变量,只需要类级别的Form

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

我在类中声明了我的"index",如下所示: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...
}

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

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

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

这将在数组的每个位置读取相同的整数。

你需要在你的类中存储"索引",然后做一些类似的事情:

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