当用户没有在文本框中输入任何内容时,我如何让代码使用不同的变量?

How would I get the code to use a different variable when the user does not input anything into a text box?

我正在为大学项目制作里程计算器。如果用户未在文本框中输入任何内容,我想确保程序使用全局变量。示例:如果用户未在 costPerLitre 框中输入任何内容,则使用 globals.averageCostPerLitre


        public static class globals
        {
            public const double averageCostPerLitre = 1.25;
            public const double averageMilesPerGallon = 50.5;
            public const int averageGallonsInTank = 14;
            public const int highestSpeed = 70;
            public const int lowestSpeed = 30;
        }
        
        private void button2_Click(object sender, EventArgs e)
        {

            double costPerLitre = Convert.ToDouble(textBox5.Text);
            double milesPerGallon = Convert.ToDouble(textBox6.Text);
            double routeMiles = Convert.ToInt32(textBox7.Text);
            double numberOfGallons = Convert.ToInt32(textBox8.Text);

            if (costPerLitre == 0)
            {
                costPerLitre = globals.averageCostPerLitre;
            }
            else if (milesPerGallon == 0)
            {
                milesPerGallon = globals.averageMilesPerGallon;
            }
            else if (numberOfGallons == 0)
            {
                numberOfGallons = globals.averageGallonsInTank;
            }
            else
            {
                // Do nothing
            }

我的问题是,当代码为 运行 且未输入任何内容时,它会停止并中断。我不知道如何解决这个问题。

完整代码:

https://i.stack.imgur.com/biY5d.png

double costPerLitre = Convert.ToDouble(textBox5.Text) 这样的每一行都有错误,因为当文本为空时,您无法将其转换为双精度!

因此您可以修改每一行:

double costPerLitre = string.IsNullOrEmpty(textBox5.Text)  
    ? globals.averageCostPerLitre  
    : Convert.ToDouble(textBox5.Text);

除了 我建议你使用 double.TryParse 这是一个更好的做法,因为它不会在错误时抛出异常并且 returns 一个 bool 指示是否可以转换与否。