1
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,我找不到错误。这是一种需要帮助的方法。

4

2 回答 2

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;
于 2012-05-27T13:01:33.910 回答
0

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

您需要添加

return score;

score计算结果一样

于 2012-05-27T13:02:58.093 回答