C# 当用户没有在文本框中输入任何内容时,如何让代码使用不同的变量?
我正在为一个大学项目做一个里程计算器。如果用户没有在文本框中输入任何内容,我希望确保程序使用全局变量。示例:如果用户未在“每升成本”框中输入任何内容,则使用globals.averageCostPerlC# 当用户没有在文本框中输入任何内容时,如何让代码使用不同的变量?,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
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,指示是否可以进行转换。绝对正确!