C# 如何在开关情况下使用值?
我对C#编程相当陌生,所以最近我被指派做一项任务,计算“AverageSpeed”,然后将其与“maxSpeed”匹配 我对“maxSpeed”有异议,因为无论我输入什么值,我都会得到一个“你在速度限制内”,我知道我不应该收到这样的消息。我怀疑他们使用的是“maxSpeed”值0,而不是本例中的最大速度 该程序要求用户输入驾驶员姓名、车辆类型和行驶距离,持续时间以分钟为单位,以查明驾驶员是否超过了最大允许速度 请告知C# 如何在开关情况下使用值?,c#,switch-statement,C#,Switch Statement,我对C#编程相当陌生,所以最近我被指派做一项任务,计算“AverageSpeed”,然后将其与“maxSpeed”匹配 我对“maxSpeed”有异议,因为无论我输入什么值,我都会得到一个“你在速度限制内”,我知道我不应该收到这样的消息。我怀疑他们使用的是“maxSpeed”值0,而不是本例中的最大速度 该程序要求用户输入驾驶员姓名、车辆类型和行驶距离,持续时间以分钟为单位,以查明驾驶员是否超过了最大允许速度 请告知 private void btnSubmit_Click(object sen
private void btnSubmit_Click(object sender, EventArgs e)
{
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(hours, miles);
Object itemSelect = (Object)cboCarType.SelectedItem;
string carType = itemSelect.ToString();
int maxSpeed =0;
switch (carType)
{
case "Sedan":
maxSpeed = 100;
break;
case "Wagon":
maxSpeed = 90;
MessageBox.Show("Wagon");
break;
case "Truck":
maxSpeed = 50;
break;
case "Van":
maxSpeed = 60;
break;
case "Bus":
maxSpeed = 50;
break;
case "Tractor trailer":
maxSpeed = 30;
break;
}
if (AverageSpeed > maxSpeed)
{
MessageBox.Show("You have exceed the maximun speed!");
}
else
{
MessageBox.Show("You are within the speed limit!");
}
}
double GetMPH(double miles, double hours)
{
double GetMPH = miles / hours;
return GetMPH;
}
逐步浏览代码,找出AverageSpeed和maxSpeed的值。根据对您错误的描述,我怀疑AverageSpeed始终为零 将
开关更改为函数,如下所示:
public int MaxSpeed(string carType)
{
switch (carType)
{
case "Sedan": return 100;
case "Wagon": return 90;
case "Truck": return 50;
case "Van": return 60;
case "Bus": return 50
case "Tractor trailer": return 30;
}
return 0;
}
这将允许您单独对函数进行单元测试,并证明它是有效的。逐步浏览代码,找出AverageSpeed和maxSpeed的值。根据对您错误的描述,我怀疑AverageSpeed始终为零
将开关更改为函数,如下所示:
public int MaxSpeed(string carType)
{
switch (carType)
{
case "Sedan": return 100;
case "Wagon": return 90;
case "Truck": return 50;
case "Van": return 60;
case "Bus": return 50
case "Tractor trailer": return 30;
}
return 0;
}
这将允许您单独对函数进行单元测试,并证明它是有效的。逐步浏览代码,找出AverageSpeed和maxSpeed的值。根据对您错误的描述,我怀疑AverageSpeed始终为零
将开关更改为函数,如下所示:
public int MaxSpeed(string carType)
{
switch (carType)
{
case "Sedan": return 100;
case "Wagon": return 90;
case "Truck": return 50;
case "Van": return 60;
case "Bus": return 50
case "Tractor trailer": return 30;
}
return 0;
}
这将允许您单独对函数进行单元测试,并证明它是有效的。逐步浏览代码,找出AverageSpeed和maxSpeed的值。根据对您错误的描述,我怀疑AverageSpeed始终为零
将开关更改为函数,如下所示:
public int MaxSpeed(string carType)
{
switch (carType)
{
case "Sedan": return 100;
case "Wagon": return 90;
case "Truck": return 50;
case "Van": return 60;
case "Bus": return 50
case "Tractor trailer": return 30;
}
return 0;
}
这将允许您单独对函数进行单元测试,并证明其工作。可能switch语句不会将maxSpeed更新为所选值。
在switch语句处放置断点以查看carType的值。switch语句可能不会将maxSpeed更新为所选值。
在switch语句处放置断点以查看carType的值。switch语句可能不会将maxSpeed更新为所选值。
在switch语句处放置断点以查看carType的值。switch语句可能不会将maxSpeed更新为所选值。
在switch语句处放置断点以查看carType的值。您已完成以下代码:
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(hours, miles);
将您的代码替换为以下代码:
double minutes = Convert.ToDouble(txtDuration.Text);
double miles = Convert.ToDouble(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
并确保在字符串类型中获得正确的选定值
希望这将对您有所帮助。您已完成以下代码:
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(hours, miles);
将您的代码替换为以下代码:
double minutes = Convert.ToDouble(txtDuration.Text);
double miles = Convert.ToDouble(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
并确保在字符串类型中获得正确的选定值
希望这将对您有所帮助。您已完成以下代码:
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(hours, miles);
将您的代码替换为以下代码:
double minutes = Convert.ToDouble(txtDuration.Text);
double miles = Convert.ToDouble(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
并确保在字符串类型中获得正确的选定值
希望这将对您有所帮助。您已完成以下代码:
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(hours, miles);
将您的代码替换为以下代码:
double minutes = Convert.ToDouble(txtDuration.Text);
double miles = Convert.ToDouble(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
并确保在字符串类型中获得正确的选定值
希望这能对您有所帮助。问题在于您的carType字符串设置不正确。
将itemSelect.ToString()
更改为itemSelect.Text
private void btnSubmit_Click(object sender, EventArgs e)
{
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
Object itemSelect = (Object)cboCarType.SelectedItem;
string carType = itemSelect.Text;
int maxSpeed =0;
switch (carType)
{
case "Sedan":
maxSpeed = 100;
break;
case "Wagon":
maxSpeed = 90;
MessageBox.Show("Wagon");
break;
case "Truck":
maxSpeed = 50;
break;
case "Van":
maxSpeed = 60;
break;
case "Bus":
maxSpeed = 50;
break;
case "Tractor trailer":
maxSpeed = 30;
break;
}
if (AverageSpeed > maxSpeed)
MessageBox.Show("You have exceed the maximun speed!");
else
MessageBox.Show("You are within the speed limit!");
}
double GetMPH(double miles, double hours)
{
double GetMPH = miles / hours;
return GetMPH;
}
更新:
您还可以使用以下代码来获取carType
//Object itemSelect = (Object)cboCarType.SelectedItem; //Remove this line
string carType = cboCarType.SelectedItem.Text;
并将GetMPH函数调用更改为GetMPH(英里,小时)问题在于您的carType字符串设置不正确。
将itemSelect.ToString()
更改为itemSelect.Text
private void btnSubmit_Click(object sender, EventArgs e)
{
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
Object itemSelect = (Object)cboCarType.SelectedItem;
string carType = itemSelect.Text;
int maxSpeed =0;
switch (carType)
{
case "Sedan":
maxSpeed = 100;
break;
case "Wagon":
maxSpeed = 90;
MessageBox.Show("Wagon");
break;
case "Truck":
maxSpeed = 50;
break;
case "Van":
maxSpeed = 60;
break;
case "Bus":
maxSpeed = 50;
break;
case "Tractor trailer":
maxSpeed = 30;
break;
}
if (AverageSpeed > maxSpeed)
MessageBox.Show("You have exceed the maximun speed!");
else
MessageBox.Show("You are within the speed limit!");
}
double GetMPH(double miles, double hours)
{
double GetMPH = miles / hours;
return GetMPH;
}
更新:
您还可以使用以下代码来获取carType
//Object itemSelect = (Object)cboCarType.SelectedItem; //Remove this line
string carType = cboCarType.SelectedItem.Text;
并将GetMPH函数调用更改为GetMPH(英里,小时)问题在于您的carType字符串设置不正确。
将itemSelect.ToString()
更改为itemSelect.Text
private void btnSubmit_Click(object sender, EventArgs e)
{
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
Object itemSelect = (Object)cboCarType.SelectedItem;
string carType = itemSelect.Text;
int maxSpeed =0;
switch (carType)
{
case "Sedan":
maxSpeed = 100;
break;
case "Wagon":
maxSpeed = 90;
MessageBox.Show("Wagon");
break;
case "Truck":
maxSpeed = 50;
break;
case "Van":
maxSpeed = 60;
break;
case "Bus":
maxSpeed = 50;
break;
case "Tractor trailer":
maxSpeed = 30;
break;
}
if (AverageSpeed > maxSpeed)
MessageBox.Show("You have exceed the maximun speed!");
else
MessageBox.Show("You are within the speed limit!");
}
double GetMPH(double miles, double hours)
{
double GetMPH = miles / hours;
return GetMPH;
}
更新:
您还可以使用以下代码来获取carType
//Object itemSelect = (Object)cboCarType.SelectedItem; //Remove this line
string carType = cboCarType.SelectedItem.Text;
并将GetMPH函数调用更改为GetMPH(英里,小时)问题在于您的carType字符串设置不正确。
将itemSelect.ToString()
更改为itemSelect.Text
private void btnSubmit_Click(object sender, EventArgs e)
{
int minutes = Convert.ToInt32(txtDuration.Text);
double miles = Convert.ToInt32(txtDistance.Text);
double hours = minutes / 60;
double AverageSpeed = GetMPH(miles, hours);
Object itemSelect = (Object)cboCarType.SelectedItem;
string carType = itemSelect.Text;
int maxSpeed =0;
switch (carType)
{
case "Sedan":
maxSpeed = 100;
break;
case "Wagon":
maxSpeed = 90;
MessageBox.Show("Wagon");
break;
case "Truck":
maxSpeed = 50;
break;
case "Van":
maxSpeed = 60;
break;
case "Bus":
maxSpeed = 50;
break;
case "Tractor trailer":
maxSpeed = 30;
break;
}
if (AverageSpeed > maxSpeed)
MessageBox.Show("You have exceed the maximun speed!");
else
MessageBox.Show("You are within the speed limit!");
}
double GetMPH(double miles, double hours)
{
double GetMPH = miles / hours;
return GetMPH;
}
更新:
您还可以使用以下代码来获取carType
//Object itemSelect = (Object)cboCarType.SelectedItem; //Remove this line
string carType = cboCarType.SelectedItem.Text;
并将GetMPH函数调用更改为GetMPH(英里,小时)也许您可以在switch语句上方的代码中打印carType。
比如说
MessageBox.Show(carType)强>
这样可以检查switch语句是否正常工作。
e、 carType真的像预期的那样是一辆轿车吗
调试和设置断点当然也是可能的。也许您可以在switch语句上方的代码中打印carType。
比如说
MessageBox.Show(carType)强>
这样可以检查switch语句是否正常工作。
e、 carType真的像预期的那样是一辆轿车吗
调试和设置断点当然也是可能的。也许您可以在switch语句上方的代码中打印carType。
比如说
MessageBox.Show(carType)强>
这样可以检查switch语句是否正常工作。
e、 carType真的像预期的那样是一辆轿车吗
调试和设置断点当然也是可能的。也许您可以在switch语句上方的代码中打印carType。
比如说
MessageBox.Show(carType)强>
这样可以检查switch语句是否正常工作。
e、 carType真的像预期的那样是一辆轿车吗
当然,调试和设置断点也是可能的。单步执行代码时会发生什么?调试器应该告诉您一切