conversion from string to int while passing as a parameter in a method
I have a method that inputs an integer as a parameter in a class -
public string OddNumbers(int input)
and in my main program, I am trying to accept an integer from the user, through a textbox, and I am converting the input string to integer while passing the parameter -
string odd = od.OddNumbers(int.Parse((TextBox1.Text))).ToString();
and I am getting the following error:
"System.FormatException: Input string was not in a correct format."
I tried different methods of converting the integer t开发者_C百科o string, but results in the same error, for example:
string odd = od.OddNumbers(Convert.ToInt32(TextBox1.Text));
Any help in pointing out where I am going wrong?
What input are you trying to enter?
I would try a couple of things.
1) Run a trim on the input before passing it into the parse command. This will make sure there are no empty spaces at the end of the number.
2) If you are trying to accept a decimal, make sure you use double.
Do not nest functions, it makes code incredibly difficult do debug and maintain.
int Number;
if (int.TryParse(TextBox1.Text, out Number) == false)
{
// parsing error
Number = -1;
}
string odd = od.OddNumbers(Number);
The following should work assuming that the user enters a valid integer in the textbox:
int i = int.Parse(TextBox1.Text);
string odd = od.OddNumbers(i).ToString();
Another possible way to handle this is to use the TryParse method:
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");
}
Once i put the method inside an click event, which finds out whether the input integer is odd or even, it gave me the desired result. thanks for all the inputs.
精彩评论