Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当用户没有在文本框中输入任何内容时,如何让代码使用不同的变量?_C#_Variables_Input_Global_Local - Fatal编程技术网

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

C# 当用户没有在文本框中输入任何内容时,如何让代码使用不同的变量?,c#,variables,input,global,local,C#,Variables,Input,Global,Local,我正在为一个大学项目做一个里程计算器。如果用户没有在文本框中输入任何内容,我希望确保程序使用全局变量。示例:如果用户未在“每升成本”框中输入任何内容,则使用globals.averageCostPerl public static class globals { public const double averageCostPerLitre = 1.25; public const double averageMi

我正在为一个大学项目做一个里程计算器。如果用户没有在文本框中输入任何内容,我希望确保程序使用全局变量。示例:如果用户未在“每升成本”框中输入任何内容,则使用globals.averageCostPerl


        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
            }

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

完整代码:


每行都会出现错误,如
double costperl=Convert.ToDouble(textBox5.Text)
,因为当文本为空时,无法将其转换为double

因此,您可以使用以下内容修改每一行:

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

除此之外,我建议您使用double.TryParse,这是一种更好的做法,因为它不会在出现错误时引发异常,并返回一个bool,指示是否可以进行转换。

绝对正确!