在作为方法中的参数传递时从字符串转换为int

时间:2011-03-22 22:52:09

标签: c#

我有一个方法在类中输入一个整数作为参数 -

public string OddNumbers(int input)

在我的主程序中,我试图通过文本框接受用户的整数,并在传递参数时将输入字符串转换为整数 -

string odd = od.OddNumbers(int.Parse((TextBox1.Text))).ToString();

我收到以下错误:

  

“System.FormatException:输入字符串的格式不正确。”

我尝试了将整数转换为字符串的不同方法,但会导致相同的错误,例如:

string odd = od.OddNumbers(Convert.ToInt32(TextBox1.Text));

指出我哪里出错了?

4 个答案:

答案 0 :(得分:1)

您想要输入什么输入?

我会尝试一些事情。

1)在将输入传递给parse命令之前对输入运行trim。这将确保数字末尾没有空格。

2)如果您尝试接受小数,请确保使用double。

答案 1 :(得分:1)

假设用户在文本框中输入有效整数,则以下内容应该有效:

int i = int.Parse(TextBox1.Text);
string odd = od.OddNumbers(i).ToString();

另一种处理此问题的方法是使用TryParse方法:

int i;
if (int.TryParse(TextBox1.Text, out i))
{
    string odd = od.OddNumbers(i).ToString();
}
else
{
    MessageBox.Show(TextBox1.Text + " is not a valid integer");
}

答案 2 :(得分:1)

不嵌套函数,它使代码难以进行调试和维护。

    int Number;

    if (int.TryParse(TextBox1.Text, out Number) == false)
    {
        // parsing error
        Number = -1;
    }

    string odd = od.OddNumbers(Number);

答案 3 :(得分:0)

一旦我把方法放在click事件中,它发现输入整数是奇数还是偶数,它给了我想要的结果。感谢所有的投入。