2011-03-22 64 views
0

我有一个输入的整数作为一个类参数的方法 -转换而作为参数传递的方法来诠释

public string OddNumbers(int input) 

,并在我的主程序,我试图接受来自用户的,通过一个文本框整数,以及我的输入字符串转换为整数而传递参数 -

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

和我得到以下错误:

"System.FormatException: Input string was not in a correct format."

我试图转换整数字符串的方法不同,但会导致同样的错误,例如:

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

在指出我要去的地方不对任何帮助吗?

+0

这种情况下FormatException的一个原因是空字符串被传递给int.Parse。如果没有输入文本框,就会发生这种情况。 – eulerfx 2011-03-22 22:55:48

+0

WinForms或ASP.NET? – 2011-03-22 22:57:30

回答

1

你想输入什么输入?

我会尝试一些事情。

1)将入解析命令之前执行对输入的修整。这将确保数字末尾没有空白。

2)如果你想接受一个小数,请确保您使用双。

+0

我想输入一个普通的整数 – Ron 2011-03-22 23:22:35

+0

你可能要在调试器中抛出它并检查TextBox1.Text的实际值是什么。 – CtrlDot 2011-03-23 00:15:25

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"); 
} 
+0

感谢达林,我试过你的代码,但仍然得到相同的错误。 – Ron 2011-03-22 23:22:11

+0

@ user672096,当你遍历你的代码时,TextBox1.Text的值是多少?如果它是'null'或一个空字符串,你会得到这个异常。 – 2011-03-22 23:23:45

1

不要窝功能,它使代码难以置信地难以调试和维护。

int Number; 

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

    string odd = od.OddNumbers(Number); 
+0

谢谢你们,我犯了一个愚蠢的错误 - 我有一个文本框来捕获数字,但没有通过计算发现输入的整数是奇数还是偶数来触发事件。有一次,我把方法放在按钮的点击事件中,我正在得到想要的结果。感谢所有的投入。 – Ron 2011-03-23 18:18:53

0

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