当用户没有在文本框中输入任何内容时,我如何让代码使用不同的变量?
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 指示是否可以转换与否。
我正在为大学项目制作里程计算器。如果用户未在文本框中输入任何内容,我想确保程序使用全局变量。示例:如果用户未在 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);
除了