C# 验证字符串预防不起作用?

C# 验证字符串预防不起作用?,c#,string,validation,C#,String,Validation,我正在尝试转换用户输入的数字,TryParse方法不起作用,我希望如果decimelPlacetxtBox文本中也没有数字,它不会崩溃。从逻辑上讲,它不应该崩溃,因为代码是正确的,但它仍然会崩溃,有人能帮我吗。也许这是我的脑子,但我就是搞不懂 private void btnConvert_Click(object sender, EventArgs e) { int decimalPlace = int.Parse(decimelPlacetxtBox.Text);

我正在尝试转换用户输入的数字,TryParse方法不起作用,我希望如果decimelPlacetxtBox文本中也没有数字,它不会崩溃。从逻辑上讲,它不应该崩溃,因为代码是正确的,但它仍然会崩溃,有人能帮我吗。也许这是我的脑子,但我就是搞不懂

 private void btnConvert_Click(object sender, EventArgs e)
    {

        int decimalPlace = int.Parse(decimelPlacetxtBox.Text);


        if (!double.TryParse(txtboxAmount.Text, out double amount) || !int.TryParse(decimelPlacetxtBox.Text, out int decimalPlaces)) return; // Prevents empty string, validation errorerror
        {
            double userInput = Convert.ToDouble(txtboxAmount.Text);

            // Killogram convertion

            if (comboBoxFrom.SelectedItem.ToString() == "KG" && comboBoxTo.SelectedItem.ToString() == "LB")
            {
                double conver = userInput * 2.20462262185;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput / 2.2046;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput * 6.35;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

                // Pound convertion

                if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "ST")
            {
                double conver = userInput / 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "LB")
            {
                double conver = userInput / 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput / 2.205;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

            {
                comboBoxFrom.SelectedItem = -1;
            }

            // Stone convertion

            if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "LB")
            {
                double conver = userInput * 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "ST")
            {
                double conver = userInput / 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput / 2.205;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);


            }

        }
    }

当它崩溃时,是否出现任何错误消息?如果是这样,他们会怎么说?没关系,我修复了它,我移动了int-decimalPlace=int.Parse(decimelPlacetxtBox.Text);在if语句中插入一行