我如何只接受C#Xamarin中的数字

我是Xamarin的C#新手.我使用Visual Studio for Mac Preview在iOS应用程序上工作.
在制作基本计算器时,我无法弄清楚如何不接受不是数字的答案.例如,在“文本”框中,如果我输入字母,我想输入一个错误

“Please enter a numeric digit”.

我不知道为什么会出现错误,但无法正常工作.

当我运行它并输入一个数字时,它每次都默认为else语句.也有字母.当我放入太多字母时,它崩溃了.

    partial void AddButton_TouchUpInside(UIButton sender)
    {
        double number1 = 0.00;
        double answer = 0.00;
        double number2 = 0.00;

        int value;
        string input = Console.ReadLine();
        if (Int32.TryParse(input, out value))
        {
            number1 = double.Parse(Number1TextBox.Text);
            number2 = double.Parse(Number2TextBox.Text);
            answer = number1 + number2;
            AnswerLabel.Text = "The answer is: " + answer.ToString();                             
        }
        else
        {

            InvalidLabel.Text = "Please enter a Numeric Digit";
        }
    }   

解决方法:

我认为问题是字符串输入= Console.ReadLine();
您为什么期望该语句具有正确的值?这对于控制台程序将是有效的,但是您正在运行iOS应用.

像这样有意义:

string input = YourTextInput.Text;

如果要使用数字限制键盘输入的文本,请使用以下命令:

YourTextInput.KeyboardType = UIKeyboardType.NumberPad;

还有一件事.如果答案应该是double,则应使用double.TryParse(input,out value)而不是int.

那这个呢?

double number1 = 0.00;
double answer = 0.00;
double number2 = 0.00;

if (double.TryParse(Number1TextBox.Text, out number1)
    && double.TryParse(Number2TextBox.Text, out number2))
{
    answer = number1 + number2;
    AnswerLabel.Text = "The answer is: " + answer.ToString();                             
}
else
{
    InvalidLabel.Text = "Please enter a Numeric Digit";
}

您仍然需要验证输入的数字,因为数字键盘允许输入多个小数点.

上一篇:Xamarin设置相机分辨率


下一篇:防止快速单击多个控件?