我不确定我的代码到底有什么问题,因为它以前曾在工作,但现在它向我显示此错误。
main.cs(179,20): error CS0161: `CarProgram.ChangeGears(int, string)': not all code paths return a value
该程序是针对汽车功能的,就像某种程度上的模拟器一样,但是我想先解决第一个错误,然后再继续讨论其他问题。
这是代码
private static int ChangeGears(int s, string g)
{
Console.WriteLine("Inside the function Change Gears");
if (s == 0)
{
string haveGear;
Console.WriteLine("What gear would you like to have?");
haveGear = Console.ReadLine();
haveGear = haveGear.ToUpper();
if (haveGear == "P" || haveGear == "R" || haveGear == "N" || haveGear == "D")
{
switch (haveGear)
{
case "P":
{
Console.WriteLine("You are in park");
break;
}
case "N":
{
Console.WriteLine("You are in neutral");
break;
}
case "D":
{
Console.WriteLine("You are in drive");
break;
}
case "R":
{
Console.WriteLine("You are in reverse");
break;
}
}//close
g = haveGear;
}
else
{
Console.WriteLine("The speed must be 0 to change gears.");
}
Console.WriteLine("Gear is "+ g);
return 0;
}
}// close ChangeGears
最佳答案
请格式化您的例程,
private static int ChangeGears(int s, string g) {
Console.WriteLine("Inside the function Change Gears");
if (s == 0) {
...
/* Some logic here */
...
return 0; // <- when s == 0 ChangeGears returns 0
}
//TODO: return value when s != 0
}// close ChangeGears
而且您清楚地看到
ChangeGears
时s != 0
不返回任何内容
关于c# - 所有路径都不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60708470/