C#空数组不接受输入

时间:2017-09-19 00:03:38

标签: c# arrays textbox

我尝试做的是使用表单文本框将数据输入空数组。表单将显示第一个数组(已输入值),但不接受进入文本框的值。无论我输入什么价值,它都会在整行中发布0.00美元。它甚至不会采用名称(字符串)。任何人都可以指导我朝着正确的方向前进。

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

namespace WP_Week3_Part1
{
    public partial class ArrayForm : Form
    {
        int[] deptArray = new int[5] { 1, 2, 3, 4, 5 };
        double[] contArray = new double[5] { 0, 0, 0, 0, 0};
        string[] nameArray = new string[5] { "", "", "", "", "" };
        public ArrayForm()
        {
            InitializeComponent();
        }

        private void buttonValue_Click(object sender, EventArgs e)
        {
            int dept;
            dept = Convert.ToInt32(textBoxDept.Text);
            double cont;
            cont = Convert.ToDouble(textBoxCont.Text);
            textBoxDept.Text = "";
            textBoxCont.Text = "";
            textBoxDonor.Text = "";
            labelOutput.Text = "Printing Contribution Table \n dept          amount          donor";
            for (int i = 0; i < deptArray.Length; i = i + 1)
            {
                nameArray[i] = textBoxDonor.Text;
                labelOutput.Text += String.Format("\n {0}          {1}          {2} ", deptArray[i], contArray[i].ToString("C"), nameArray[i]);
            }

        }
    }
}

2 个答案:

答案 0 :(得分:1)

你有两个问题:

  1. 您获得cont值,然后不执行任何操作。你打印contArray[i]但是在初始化为0后没有分配,所以当然它总是打印0.不确定假定的逻辑基于你的代码,但是要么打印cont或指定数组成员。

  2. textBoxDoneor.Text = ""循环中使用之前,请清除捐赠者文本框(for)。因此,当您分配nameArray元素时,您总是分配空字符串。你也总是分配阵列中的每个成员,不确定这是否是有意的,或者你还没有完成你的程序那么远。

答案 1 :(得分:1)

它返回$0.00因为:

您将文字textBoxDonor设置为空

它应该是这样的:

            int dept;
            dept = Convert.ToInt32(textBoxDept.Text);
            double cont;
            cont = Convert.ToDouble(textBoxCont.Text);
            //textBoxDept.Text = "";
            //textBoxCont.Text = "";
            //textBoxDonor.Text = "";
            labelOutput.Text = "Printing Contribution Table \n dept          amount          donor";
            for (int i = 0; i < deptArray.Length; i = i + 1)
            {
                nameArray[i] = textBoxDonor.Text;
                labelOutput.Text += String.Format("\n {0}          {1}          {2} ", deptArray[i], contArray[i].ToString("C"), nameArray[i]);


     }

执行后立即检查nameArray的内容

        string arrlist = string.Empty;
        foreach (var arr in nameArray.ToList())
        { 
           arrlist = arrlist +' ' + arr.ToString();
        }
        MessageBox.Show(arrlist);