错误检查,以便我不会每次除以10

时间:2010-08-30 20:31:44

标签: c#

如何检查文本框是否为空,然后仅除以int的数量。正如你现在所看到的,我每次都会除以10,所以现在我需要帮助进行错误检查。

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

        private void button1_Click(object sender, EventArgs e)
        {
            int num1;
            int num2;
            int num3;
            int num4;
            int num5;
            int num6;
            int num7;
            int num8;
            int num9;
            int num10;
            int answer;

            num1 = int.Parse(num100.Text);
            num2 = int.Parse(num200.Text);
            num3 = int.Parse(num300.Text);
            num4 = int.Parse(num400.Text);
            num5 = int.Parse(num500.Text);
            num6 = int.Parse(num600.Text);
            num7 = int.Parse(num700.Text);
            num8 = int.Parse(num800.Text);
            num9 = int.Parse(num900.Text);
            num10 = int.Parse(num1000.Text);



            answer = (num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 +num10)/10;
            MessageBox.Show(answer.ToString());

4 个答案:

答案 0 :(得分:6)

string.IsNullOrEmpty(num100.Text)

如果它为空,则返回true,否则返回false。

您也可以使用int.TryParse而不是int.Parse。如果您使用TryParse,您还将隐式处理文本框中的非int值:

if(!int.TryParse(num100.Text, out num1))
    num1 = 0;
// And for the rest...

修改

在Brian的评论之后,我意识到如果某些方框输入空/无效,你不应该除以10。以下是您应该使用的块:

int count = 0;
int num1 = 0;
// And the rest...

if(int.TryParse(num100.Text, out num1))
    count++;
// And the rest...

int answer = 0;
if(count > 0)
    answer = (num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10)
        / count;

答案 1 :(得分:1)

您可以执行以下操作:

int count = 0;

//For each textbox
if(num100.Text != "")
{
     num1 = int.Parse(num100.Text);
     count++;
}

然后除以计数

答案 2 :(得分:0)

private void button1_Click(object sender, EventArgs e)
{
    int answer;

    int num1 = !string.IsNullOrEmpty(num100.Text)? int.Parse(num100.Text):0;
    int num2 = !string.IsNullOrEmpty(num200.Text)? int.Parse(num200.Text):0;
    //etc...
    answer = (num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 +num10)/10;
    MessageBox.Show(answer.ToString());

答案 3 :(得分:0)

int num1 = 0;

if(!String.IsNullEmpty(num1.Text) && (new Regex("^/d$").Match(num1.Text)))
{
     num1 = Int32.Parse(num1.Text);
}

为每个文本框执行此操作,这将检查空文本框和非数字条目。