I want the input type to be int e.g. int number, instead of string and then parsing. So when I try to parse the InputNumber int.Parse(InputNumber.Text) I get error that Input string was not in a correct format.
It works but whenever I press Backspace to delete the number, my project crashes.
As I said I've tried to parse the Input as int.
int.Parse(InputNumber.Text)
So if I could use int my method would be much shorter and easier to understand.
private void InputNumber_TextChanged(object sender, TextChangedEventArgs e)
{
string number = InputNumber.Text;
bool isEvenOdd = EvenOddChecker.IsEvenOdd(number);
OutputNumber.Text = number + (isEvenOdd ? " is a even number" : " is a odd number");
if (InputNumber.Text == string.Empty)
{
OutputNumber.Clear();
}
}
public static bool IsEvenOdd(string number)
{
List<string> even = new List<string>()
{
"0","2","4","6","8"
};
foreach (var e in even)
{
if (number.Substring(0, number.Length - 1).ToString() == e)
{
return true;
}
}
return false;
}
I expect the output 2 to be an even number, but the actual output is that's an odd number.
Or e.g. 3 should be an odd number, it says it's even.
You can simply code by using int.TryParse(), something like
private void InputNumber_TextChanged(object sender, TextChangedEventArgs e)
{
if(int.TryParse(InputNumber.Text, out int number))
{
OutputNumber.Text = number + (number % 2 == 0? " is an even number" : " is an odd number");
//No need to write entire function we have modulo to check even odd
}
if (InputNumber.Text == string.Empty)
{
OutputNumber.Clear();
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With