并非所有代码都返回一个值

时间:2012-05-27 12:59:59

标签: path return

private static long CalculateScore(byte chances, long millisec) { int score; byte num1 = chances++; byte num2 = (byte)10; byte num3 = (byte)10; switch (Program.currLevelIndex) { case (byte)7: num2 = (byte)10; break; case (byte)11: num2 = (byte)20; break; case (byte)15: num2 = (byte)40; break; }

    if ((int)chances >= 1 && (int)chances <= 3)
        num1 = (byte)40;
    else if ((int)chances >= 4 && (int)chances <= 6)
        num1 = (byte)20;
    else if ((int)chances > 7)
        num1 = (byte)10;
    if (millisec > 480000L)
        num3 = (byte)10;
    else if (millisec >= 240000L && millisec <= 480000L)
        num3 = (byte)20;
    else if (millisec < 240000L)
        num3 = (byte)40;
    try
    {
        score = Convert.ToInt32((int)num2 * (int)num1 * (int)num3);
    }
    catch
    {
        score=0;
    }

    Console.SetCursorPosition(Program.x, Program.y);
    Console.Write("Your Score was: " + score);

}`

  

错误是CalculateScore&amp;我找不到错误。这是一种方法是工作ou帮助是nedeed。

2 个答案:

答案 0 :(得分:2)

private static long CalculateScore期望返回值为long类型,但您的方法不会返回任何内容。

将以下内容添加到方法的末尾。

return score; 

您可能希望将返回类型更改为int或将分数变量更改为long

private static int CalculateScore(byte chances, long millisec)
{
  int score; 
  byte num1;

或者

private static long CalculateScore(byte chances, long millisec)
{
  long score; 
  byte num1;

答案 1 :(得分:0)

您指定该函数将返回类型long的值,但没有返回语句在函数末尾返回值

您需要添加

return score;

因为score是计算的结果